xueba

硬件抽象层:HAL

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

一、Google什么要在Android中加入HAL

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

  2.解决了GPL版权问题。

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

二、为LED增加HAL

   1.编写一款支持 HAL Linux 驱动程序的步骤

    第 1 步:编写 Linux 驱动

2 步:编写 HAL Library

3 步:编写 Service Library

   2.颠覆 Linux 驱动的设计理念: 精简 LED 驱动

在第7 章实现的 LED 驱动的基础进程修改,去掉所有与读写寄存器规则相关的代码,只保留了创建设备文件及与寄存器交互的代码。

   3.测试读写寄存器操作

在编写 Linux 驱动以及与驱动相关的程序的过程中应分段测试每一部分程序。

   4.编写调用LED驱动的HAL模块

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

      第1步:定义结构体和宏

      第2步:编写 HAL模块的 open 函数

      第3步:定义 hw_module_methods_ t 结构体变量

      第4步: 定义 HAL_MODULE_INFO_SYM 变量

      第5步:编写 HAL模块的 close 函数

      第 6步:编写控制 LED 的函数  

5.编写调用 HAL 模缺的 Service

6.HAL模块的存放路径和命名规则

7.编写调用 Service Java

8.测试 LED 驱动

 

posted on 2016-07-07 20:33  xueba  阅读(63)  评论(0)    收藏  举报

导航