码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-24 09:13:50      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

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”的心得

标签:

原文地址:http://www.cnblogs.com/zhanghui4521/p/5613001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!