读“硬件抽象层:HAL”的心得
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读“硬件抽象层:HAL”的心得相关的知识,希望对你有一定的参考价值。
1 HAL是建立在Linux驱动上的一套程序库,并不属于Linux内核,而是属于Linux内核层上的应用层。它的目的就是保护“私人财产”,避免应用程序直接访问Linux驱动。
2在android系统中使用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.prop。Android在启动时会自动装载这些属性文件。
以上是关于读“硬件抽象层:HAL”的心得的主要内容,如果未能解决你的问题,请参考以下文章