HAL——硬件抽象层读书笔记
本章介绍了——HAL(硬件抽象层),建立在linux驱动之上的一套程序库。它并不属于linux内核,而是属于linux内核层之上的应用层。
Google为了满足这些不想开源的linux驱动作者的要求,在android层次结构中的运行库层增加了一个HAL,从而统一硬件的调用接口,解决了GPL版权问题并且针对一些特殊的要求。
在新的HAL架构中核心代码仍然没变,只是增加了新的入口代码,使这些程序可以自动被android系统识别。Android HAL的原代码存储的位置并不固定,一般会存储在<android源代码目录>/hardware目录中。
在第七章实现的LED驱动并没有添加HAL代码,而是采用的多种测试方法都是直接通过直接访问LED驱动的设备文件的方式与LED驱动交互。这节将对之前的经行一次改动,首先编写linux驱动,然后编写HAL Library,最后编写Service library。最后对程序经行精简和测试。
编写HAL模块的步骤和原理,第一步:定义结构体和宏,第二步:编写HAL模块的open函数,第三步:定义hw_module_methods_t结构体变量,第四步:定义HAL_MODULE_INFO_SYM变量,第五步:编写HAL模块的close函数,第六步:编写控制LED的函数。
http://www.cnblogs.com/SJ-0325/