其他
嵌入式软件学习路线图!
(2) 嵌入式Linux系统开发
(3) 嵌入式Linux驱动
嵌入式目前主要面向的几个操作系统是,Linux,WINCE、VxWorks等等。
(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。
(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3) Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。推荐书籍:《UNIX环境高级编程》(第2版)
(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6) 驱动开发linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
(1) 微控制器(单片机为例)
(2) 微处理器(arm为例)
(3) dsp(数字信号处理)
(4) soc(片上系统)
(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)
(2) 必须掌握一个嵌入式操作系统(初步定为uclinux或linux,版本待定)
(3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。
(1) 目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切 入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。
(2) 与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。
(3) 哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般 都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。
(4) 兴趣所在,这是最主要的。
(1) 入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。
(2) 这方面的企业数量要远少于企业计算类企业。
(3) 有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。
(4) 平台依托强,换平台比较辛苦。
(2) 喜欢思考,挑战逻辑思维
(3) 喜欢C语言
(4) 喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)
(5) 发展前景好,适合创业,不想自己要死了的时候还是一个工程师
目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。
目的:深入掌握linux系统。
目的:掌握嵌入式处理器其及系统。
(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。
(2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。
(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)
A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。
B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDM A等。
C、网络与信息安全技术:如加密技术,数字证书CA等。
D、DSP技术:DigitalSignalProcess,DSP处理器通过硬件实现数字信号处理算 法。
-END-
推荐阅读
【01】嵌入式驱动方面,这篇文章讲绝了!【02】最强干货!延时功能进化论(适用于单片机和任何延时平台)【03】关于嵌入式 Qt 最全最棒的教程(万字干货)【04】嵌入式 Linux 的一切,看这一篇就够了!【05】想搞嵌入式,但这行究竟是啥样?看大佬带你解读!