嵌入式梳理笔记

1810阅读 0评论2013-10-02 zjh_larm
分类:LINUX

从今天开始,开始对嵌入式底层开发(LINUX)做一个系统的梳理。
 
下面是需要梳理的过程的一个大纲:
 
1.BootLoad学习
 
在LINUX下,主要是UBOOT的学习。同时要结合WINCE下的EBOOT比较两者之间的区别与联系。当然在这个过程中需要了解一些基本的ARM汇编知识。
 
2.linux的启动过程
 
操作系统的启动过程也是一个必须掌握的基本点。弄清楚LINUX的启动过程是非常有必要的,这样可以知道你的驱动程序,应用程序等在整个开发阶段所处于的位置。
 
我认为这里首先要搞清的是嵌入式操作系统的编译过程,系统的启动,UBOOT与启动之间的联系,init进程的启动等等。
 
3.linux组件之一:进程的调度
 
这个需要与WINCE的进程调度做一个基本的比较,为什么说LINUX是多任务的操作系统,而WINCE是基于线程的系统。
 
4.linux组件之二:进程件的通信
 
进程间的通信,互斥与同步。从机制上面弄清实现机制,相同于不同点等。特别是对于底层开发非常有用的信号量与互斥体。当然这个也是需要与WINCE做一个对比来看。
 
5.linux组件之三:内存管理
 
内存管理单元MMU,物理地址,逻辑地址,虚拟地址,这个不论是在linux还是在WINCE下都是非常重要的,特别是内核空间和用户空间的转换。当然在linux下还有所谓的高端内存,DMA内存的使用等,都需要做一个很好的总结。
 
6.linux组件之四:文件系统
 
文件系统很难理解,这里只对根文件系统做一个大概的理解。
 
7.linux 中断处理程序
 
linux中断处理程序分为上下部来实现,与WINC一样。多看以前的例子是如何实现的。
 
8.linux 字符设备驱动程序
 
linux2.6以后的字符设备的基本模型
 
9.linux 块设备驱动程序
 
这个主要是看flash设备驱动
 
10. linux 设备管理模型
 
linux设备的管理模型,与电源管理等联系起来。
 
11. linux 模块
 
模块的学习
 
12. linux 几大总线驱动的实现
 
包括有I2C总线,SPI总线,PCI总线,USB总线等在linux下的驱动模型。
 
13.以前遇到过的一些特殊的linux内部组件
 
包括linux输入子系统,linux视频组件等。
 
 
 
上一篇:ARM-Linux 中断处理过程---系统和用户要做的
下一篇:没有了