Android深度探索HAL与驱动开发
Android深度探索HAL与驱动开发
第一章
Android系统移植与驱动开发概述
读书笔记
一、Android系统主要分为4层
1、linux内核,android基于linux内核,与其他linux系统内核差异小。
2、c/c++代码库,linux下的.so文件。
3、android SDK API,也称为java层,因为这一层是用java语言写的。
4、应用程序,相当于android的UI
二、android系统移植的主要工作
1、应用移植:一般并不涉及驱动和HAL程序库。
2、系统移植:除移植CPU架构外最重要的是移植Linux驱动。
三、设备的分类及特点
Linux将存储器和外设分为三大类:
1、字符设备:必须以串行顺序依次访问的设备,如触摸品鼠标键盘磁带驱动器等。字符设备不经过系统缓冲。
2、块设备:可以用任意顺序访问,以块为单位进行访问,如硬盘软驱等。经过系统缓冲。
3、网络设备。
四、Linux驱动:LED
用c语言实现Linux驱动的核心代码,控制S3C640开发板上的4个LED(字符设备驱动)。
Linux驱动都有一个装载函数(装载函数时调用)和一个卸载函数(卸载驱动时调用)。
装载函数和卸载函数分别通过mobule_int和mobule_exit宏指定。
五、小结
Linux驱动只与Linux内核有关。学习Android驱动开发就是学习Linux驱动开发。