第九章 读书笔记

这一章主要讲的是硬件抽象层:HAL

HAL ( Hardware Abstraction Layer,硬件抽象层 )是建立在Linux 驱动之上的一套程序库。这套程序库并不属于Linux 内核, 而是属于Linux 内核层之上的应用层。

Googleandroid加入hal主要目的如下:

 

1、统一硬件的调用接口。

 

2、解决了gpl版权问题。

 

3、针对一些特殊的要求。

 

Android.系统中使用Linux 驱动有两种方式。一种就是通过传统的方式直接与Lmux 驱动交互。另外一种是Android特有的,就是通过HAL 模块。HAL 模块本质上就是通过Linux 共享库(.so)与Linux驱动交互,然后应用程序再访问Linux共享库。

 

HAL是建立在Linux驱动之上的一套程序库,这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。GoogleAndroid加入HAL主要有如下的目的:统一硬件的调用接口、解决了GPL版权问题。加入HAL的驱动使应用程序不需要再关心Linux驱动和设备文件的交互方式,而只需要像访问普通API一样就可以和Linux驱动进行交互。

 

编写hal模块的步骤与原理:

 

1、定义结构体与宏

 

2、编写hal模块的open函数

 

3、定义hw_module_methods_t结构体变量

 

4、定义HAL_MODULE_INFO_SYM变量

 

5、编写hal模块的close函数

 

6、编写控制led的函数

posted @ 2016-07-04 16:11  1306杨文俊  阅读(135)  评论(0编辑  收藏  举报