第九章 读后心得体会
1.android HAL架构
2.为LED驱动增加HAL
1.编写一款支持HAL的Linux驱动程序步骤
第一步:编写Linux驱动
第二步:编写HALlibrary
第三步:编写Service Library
2.颠覆Linux驱动的设计理念:精简LED驱动
3.测试读写寄存器操作
4.编写调用LED驱动的HAL模块
HAL模块也可以被Android系统自动调用,自然也拥有类似main或init函数的接口。只不过这个接口不是函数,而是一个固定名称的结构体变量HAL_MODULE_INFO_SYM.也就是说,所有的HAL程序都必须有一个HAL_MODULE_INFO_SYM变量。
HAL模块由leds_hal.c和leds_hal.h组成。Leds_hal.h头文件用于定义结构体,宏和引用一些系统的头文件。
编写HAL模块的步骤和原理:
第一步:定义结构体和宏
第二步:编写HAL模块的open函数
第三步:定义hw_module_methods_t的结构体变量
第四步:定义HAL_MODULE_INFO_SYM
第五步:编写HAL模块的close函数
第六步:编写控制LED的函数
5.编写调用HAL模块的Service
6.HAL模块的存放路径和命名规则
HAL模块通常存放在/system/lib/hw目录。文件名中一般都有一个default.
7.编写调用Service的Java库
8.测试LED驱动