Android深度探索(卷1)HAL与驱动开发第九章读书笔记

本章主要讲硬件抽象层:HAL.HAL 是建立在linux 驱动之上的一套程序库,GoogleAndroid加入HAL主要如下的目的。

1.统一硬件的调用接口

2.解决了GPI版权的问题

3.针对一些特殊的要求

LED的驱动中,我们加入HAL使用程序不需要关心Linux驱动和设备文件的交互方式。编写一款支持HALlinux驱动程序的步骤:

第一步:编写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模块。

原文地址:https://www.cnblogs.com/l233ee/p/5648824.html