android深度探索第九章心得体会
本章主要讲硬件抽象层:HAL,它是建立在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。
编写HAL模块的步骤和原理如下。
第一步:定义结构体和宏编写HAL模块需要使用到3个非常重要的结构体,在第一步需要定义两个新的结构体。
第二步:编写HAL模块的open函数 open函数是HAL模块的入口点。本例中使用的是led_device_open函数。该函数主要做如下三个工作。初始化hw_device_t的子结构体。打开设备文件。初始化寄存器。
第三步:定义hw_module_methhods_t结构体变量
第四步:定义HAL_MODULE_INFO_SYM函数
第五步:编写HAL模块的close 函数当HAL模块被卸载后会调用close函数
第六步:编写控制LED的函数