推荐大家可以去华清远鉴的网站了解一下嵌入式学习的课程设置和相关书籍。
如果要往嵌入式软件方向发展的话,最常见的方向就是嵌入式Linux,关于这个方向,我觉得可以分为三个阶段:
1.嵌入式Linux上层应用程序,包括QT GUI开发
2.嵌入式Linux系统开发
3.嵌入式Linux驱动开发
目前嵌入式系统采用的操作系统主要有LINUX、WINCE、VxWorks等。
Linux是开源免费的,其源代码是开放的,比较适合我们学习嵌入式系统。
因此你可以尝试以下路线:
(1)C语言是所有编程语言中最强的。微控制器、DSP以及ARM等各种芯片的编程都可以用C语言完成),因此需要非常熟练地掌握它。
推荐书籍:谭浩强的《C程序设计语言》很好,这本经典教材是老外写的,还有中文译本。
(2)操作系统原理必不可少。如果你是计算机专业毕业的,那没关系。但是如果你不是计算机专业毕业的,那一定要找一本简单的计算机原理书看,了解一下什么是“进程”、“线程”、“系统调度”等基础知识。
(3)Linux操作系统是用C语言编写的,所以也应该先学习一些Linux编程,只有会应用,才能更进一步理解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构、原理、汇编指令。在嵌入式开发中,我们很少写汇编,但最低要求是能看懂ARM汇编。
(5)移植系统的时候,需要从底层的bootloader开始,然后移植内核,文件系统等,移植部分对硬件的依赖性较强,配置步骤相对复杂,目前没有太多详细资料。
(6)驱动开发
Linux驱动程序设计既是一个非常具有挑战性的领域,也是一门深奥的学科。
Linux驱动设计本质属于Linux内核编程的范畴,所以对Linux内核和内核编程都有要求。学习之前需要了解Linux内核的组成,因为如果要详细研究每个部分,那可以展开成一本厚厚的书。
以上只是大致的框架,实际开发中会涉及到很多东西,比如交叉编译,makefile,shell脚本等等,所以嵌入式系统学习周期长,门槛高,自学需要很强的学习能力和专业技能,只要你能坚持,就一定能成功!
想要了解更多嵌入式系统知识,可以访问华清远鉴网站,各大书店、图书馆也有华清远鉴出版的嵌入式系统专业畅销书,相信对你的学习会有所帮助!