嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常嵌入式Web技术嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。
学习嵌入式之前,必须学习其他课程,所谓0基础是不可能的!
1、C语言
《C程序设计语言》第二版,徐宝文译,机械工业出版社。你能区分开指针数组和数组指针吗?你知道函数指针吗? 你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?
2、数据结构
《数据结构》C语言版,黄国愉、叶乃青编,清华大学出版社。你能合上书本,用C语言实现书中的单链表、双链表数据结构吗?
3、C++
《实用C++程序设计》第二版,中国电力出版社,Steve_Oualline著 。此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。
4、单片机
《51单片机》你能用51单片机做出一样实际的东西吗?即使它再简单!要注意加深对中断的理解。
5、ARM单片机
细读《ARM微控制器基础与实战》周立工编写,即使你不用书中的开发板);
细读相关芯片的原版英文文档。如:arm920TE.pdf S3C2410_1.2.pdf 。6、uCOS!!操作系统
细读《嵌入式实时操作系统uC/OS-!!》第二版,召贝贝译,你能把uCOS!!移植到自己的平台上吗?
能编写在uCOS!!操作系统环境下运行的针对具体硬件的驱动程序 。
7、Linux
熟悉Linux环境,学习Linux环境编程,学习交叉编程:
细读《linux命令大全.pdf》 ;
细读《GNU Make 使用手册(中译版).pdf》 ; 学习创建交叉编程环境。 8、Linux操作系统
《UNIX环境高级编程》 ;
细读“joyfire 笔记”,可在“”网站的好书下载栏目获取 ;
细读《linux内核完全注释》 ;
细读《understanding the linux kernel 2》 ;
利用源代码阅读利器工具"Source Insight"进行真正的linux内核原码刨析 ;
最后进行内核移植,并能编写在linux操作系统环境下运行的针对具体硬件的驱动程序 。
9、Linux设备驱动编写
可参考《Linux设备驱动程序》
10、复习C++
学习用QT进行图形界面编程:
细读《QT编程宝典》;
学会通过查看QT电子文档进行QT GUI实地编程 ;
学习交叉编程(其实就是把命令qmake变为tmake)。
11、当然,你也可学习一下PCB的制作和设计一个自己的CPU(即软壳)
嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?