嵌入式学习是一个按部就班的过程,若是是但愿向嵌入式软件方向发展的话,目前最多见的是嵌入式开发Linux方向,关注这个方向,我认为大概分3个阶段:linux
嵌入式.jpg算法
嵌入式目前主要面向的几个操做系统是,LINUX,WINCE、VxWorks等等shell
Linux是开源免费的,并且其源代码是开放的,更加适合咱们学习嵌入式。数据库
(1) C语言是全部编程语言中的强者,单片机、DSP、相似ARM的种种芯片的编程均可以用C语言搞定),所以必须很是熟练的掌握。安全
推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。网络
(2) 操做系统原理,是必需的,若是你是计算机专业毕业那也就无所谓了,若是是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操做系统就是用C语言编写的,因此你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
(4) 了解ARM的架构,原理,以及其汇编指令,咱们在嵌入式开发中,通常不多去写汇编,可是最起码的要求是可以看懂arm汇编。
bootloader开始,而后内核移植,文件系统移植等。而移植这部分对硬件的依赖是很是大的,其配置步骤也相对复杂,也没有太多详细资料。
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,于是是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,由于每一部分要详细研究的话足够能够扩展成一本厚书。
对于咱们初学者而言,首先要学习单片机,以51为表明,等你学好51以后,能够深刻学习更艰难的东西;
单片机仍是比较简单的,等到学好以后,开始学习arm的时候,你就接触的多了,什么操做系统啊、驱动编写啊、内核移植啊、应用程序的添加啊、上位机的编写啊,,那个就多了,,不过到时候你就全知道了。。。
ARM+LINUX路线,主攻嵌入式Linux操做系统及其上应用软件开发目标:
(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)
(2)必须掌握一个嵌入式操做系统(初步定为uclinux或linux,版本待定)
(3)必须熟悉嵌入式软件开发流程并至少作一个嵌入式软件项目。
(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,因此非专业IT人员很难切 入这一领域;另外一方面,是由于这一领域较新,目前发展太快,大多数人无条件接触。
(2)与企业计算等应用软件不一样,嵌入式领域人才的工做强度一般低一些(但收入不低)。
(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计通常 都是请其它公司给订作(这叫“贴牌”:OEM),都是通用的硬件,咱们只管设计软件就变成本身的产品了。
(1)入门起点较高,所用到的技术每每都有必定难度,若软硬件基础很差,特别是操做系统级软件功底不深,则可能不适于此行。
(3)有少数公司常常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并没有此要求,只要有经验便可。
五、发展前景好,适合创业,不想本身要死了的时候仍是一个工程师。
目的:能看懂硬件工做原理,但重点在嵌入式软件,特别是操做系统级软件,那将是个人优点。
方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不必定全学,可根据须要选修。
thec++programminglanguage(一直没时间读)、数据结构-C2。
主攻书籍:linux内核彻底剖析、unix环境高级编程、深刻理解linux内核、情景分析和源代。
(1)嵌入式微处理器结构与应用:直接arm原理及汇编便可,不要重复x86。
(2)嵌入式操做系统类:ucOS/II简单,开源,可供入门。然后深刻研究uClinux。
(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)
主攻书籍:毛德操的《嵌入式系统》及其余arm9手册与arm汇编指令等。
A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。
B、通讯协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDM A等。
D、DSP技术:DigitalSignalProcess,DSP处理器经过硬件实现数字信号处理算 法。
注意: 要学会举一反多,有强大的基础,不少东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具备良好的逻辑思惟。必定要理论结合实践。