Android深度探索(卷1)HAL与驱动开发第九章总结
本章主要讲硬件抽象层:HAL.HAL 是建立在linux 驱动之上的一套程序库,Google为Android加入HAL主要如下的目的。
1.统一硬件的调用接口
2.解决了GPI版权的问题
3.针对一些特殊的要求
在LED的驱动中,我们加入HAL使用程序不需要关心Linux驱动和设备文件的交互方式。编写一款支持HAL的linux驱动程序的步骤:
第一步:编写linux驱动
第二步:编写 HAL Library
第三步:编写Service library
编写HAL模块的步骤和原理如下:
第一步:定义结构体和宏
描述HAL模块的hw-module-t结构体
描述HAL设备的HW-device-t结构体
描述模块入口函数的hw-module-methods-t结构体
第二步:编写HAL模块的open函数
第三步:定义hw-module-methods-t结构体变量
第四步:定义HAL-module-info-sym变量
第五步:编写HAL模块的close函数
第六步:编写控制LED的函数
在Android系统中使用Linux驱动由两种方式。一种就是通过传统的方式直接与Linux驱动交互,另外一种就是Android特有的,就是HAL模块。
http://home.cnblogs.com/u/zivjeli/