读“硬件抽象层:HAL”的心得

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读“硬件抽象层:HAL”的心得相关的知识,希望对你有一定的参考价值。

1 HAL是建立在Linux驱动上的一套程序库,并不属于Linux内核,而是属于Linux内核层上的应用层。它的目的就是保护“私人财产”,避免应用程序直接访问Linux驱动。

2android系统中使用Linux驱动有两种方式。一种就是通过传统的方式直接与Linux交互,如直接读取设备文件中的数据。另外一种是Andrid特有的,就是通过HAL模块。

3 HAL模块本质上就是通过Linux共享库(.so)与Linux驱动交互,然后应用程序再访问Linux共享库。

4每一个HAL共享库指定一个ID,通过ID来定位相应的.so文件(在这里叫做Stub)。Google也建议使用Stub的方式编写HAL模块。

5编写HAL模块的步骤和原理:

(1)定义结构体和宏

(2)编写HAL模块的open函数

(3)定义hw_module_methods_t结构体变量

(4)定义HAL_MODULE_INFO_SYM变量

(5)编写HAL模块的close函数

(6)编写控制LED的函数

6Android系统的属性文件共有4个: /default.prop;/system/build.prop;/system/default.prop;/data/local.propAndroid在启动时会自动装载这些属性文件。

 

 

以上是关于读“硬件抽象层:HAL”的心得的主要内容,如果未能解决你的问题,请参考以下文章

第九章心得体会

第九章-硬件抽象层:HAL

第九章:硬件抽象层:HAL

第九章 硬件抽象层:HAL

第9章 硬件抽象层:HAL

硬件抽象层:HAL