嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常嵌入式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环境高级编程》 ; 细读《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的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?
|