A-A+

Android深度探索笔记

2016-07-12 阅读

HAL层属于Linux内核层之上的应用层是为了尽量避免应用程序直接访问Linux驱动和保护 “私人财产”。带HAL的 Linux 驱动就相当于将数据从HAL传到寄存器,或从寄存器传到HAL的数据二传。

加入HAL的主要目的:1:统一硬件的调用接口,2:解决了GPl版权问题,3:针对一些特殊的要求。

Android HAL的源代码存储的位置并不固定,一般会存储在Android源代码目录/hardware目录中。

编写一款支持HA 的Linux驱动程序的步骤:1:编写 Linux 驱动;2:编写 HAL Library,这类库文件有一个接口。通过HAL_MODULE_INFO_ SYM变量实现;3:编写 Service Library;

如果启动了多个android虚拟机或连接了多个Android设备。build.sh脚本文件会检测到这些设备,并将它们列出来供用户选择。

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

HAL模块拥有一个固定名称的结构体变量HAL_MODULE_INFO_SYM。HAL模块由leds hal.c 和leds .hal.h组成。leds_hal.h头文件用于定义结构体,宏和引用一些系统的头文件。

编写 HAL 模块的步骤和原理如下:1:定义结构体和宏;2:编写 HAL 模块的 open 函数;3:定义 hw_module_methods_ t 结构体变量;4:定义 HAL_MODULE_INFO_SYM 变量;5:编写 HAL 模块的 close 函数;6:编写控制 LED 的函数;

Android深度探索笔记-第九章

标签:
  • 版权声明:本站原创文章,由联合播报发表
  • 转载请注明:联合播报
联合播报是光华通讯社集团主办的视频网络电视台,设置100多个节目频道,24小时全球轮播,点播,影响力十分显著,是企业宣传的绝佳载体,欢迎合作,欢迎播放广告。00852-97961990 97969277

分享到: