今天应好友的邀请,希望能够对嵌入式系统的学习做一个总结。
想想嵌入式入门有4年多了,好多东西没有总结就忘了,是需要时间来理一理咯。
下面是我个人认为的学习方案:
就我了解到的情况,目前嵌入式系统的发展一个主要的分支是基于arm体系的开发。
那么在arm体系架构下面,又可以分成两大部分,无操作系统和有操作系统(linux系统),无操作系统的arm开发是有操作系统arm体系开发的前提,当初我们学习的时候,也是遵循着这样的路线。当然如果不想的,我们可以直接进入到linux这个层级。
针对我个人的认为内容的重要性依次分为:可选,了解,掌握,加深四个等级
无操作系统的arm学习,主要有这几个方面:
1)嵌入式系统简介(了解)
2)arm体系结构及编程模型(了解)
3)arm指令集及汇编(了解)
4)arm的存储系统(了解)
5)异常中断处理(掌握)
6)嵌入式系统的硬件设计(?这个你来哦)
同时,我个人建议依托某个具体的处理器对嵌入式系统中常用到的模块进行加深理解。我参考的是s3c2410
1)memory controller
2) nand flash controller
3) PWM timer
4) Interrupt controller
5) LCD controller
6) ADC
7) Real time clock & watchdoc
8) spi总线协议
9) IIC总线协议
10)can总线协议
11) 。。。
那这部分的东西我觉得可以选择,因为这些模块平时会在我们的系统中用到的比较多,而且中间是可以独立来看待的。
完成前面这部分的工作可能需要2~3个月的时间,因为我们本来还有工作在进行,当然作为个人爱好,我觉的没有必要这么严格。
第2个大部分就是嵌入式linux的开发。
分层来看:
1) bootloader及uboot移植
2) 内核移植
3)文件系统制作
4) 应用程序开发
5) 驱动的开发
a, 简单的led 字符设备驱动开发
b,如ADC,pwd等
c,一些总线协议的开发支持,如spi驱动,can总线驱动,网络驱动等。
6)内核相关的一些东西