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

第九章

时间:2016-07-03 18:43:33      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

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

统一硬件的调用接口、解决了GPL版权问题、针对一些特殊的要求。

二、为LED驱动增加HAL

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

第1步:编写Linux驱动

第2步:编写HAL Library

第3步:编写Service Library

2.精简LED驱动

基本原理是只从指定都存器读取或写入5个字节。第 l个字节用于指定读写的动作以及寄存器类型。后4个字节是读写的实际的数据。在与LED驱动交互时,只要向设备文件读取或发送5个字节的数据,就可以读写指定的寄存器。

3硬件模块
硬件模块的开发主要是完成/hardware/libhardware/include/hardware目录下对应的头文件中的内容,主要是硬件模块头文件和hardware.h中
的结构体中定义了一些函数指针,调用内核提供的接口将具体的函数实现,然后编译成指定名称的动态链接库放到/system/lib/hw目录下即可。
用一句话来概括:硬件模块的开发就是定义一个hardware.h中定义的hw_module_t结构体,结构体名称为宏HAL_MODULE_INFO_SYM,然后实现结构体
的相关内容即可。4.编写调用LED驱动的HAL模块

第l步:定义结构体和宏

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

初始化hw_device_t的子结构体、打开设备文件、初始化寄存器

第3步:定义hw_module_methods_t结构体变量

第4步:定义HAL_MODULE_INFO_SYM变量

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

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

在Android系统中使用Linux驱动有两种方式。一种是通过传统的方式直接与Linux驱动交互。另外一种是 Android特有的,就是通过HAL模块。

第九章

标签:

原文地址:http://www.cnblogs.com/jinzekun/p/5638468.html

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