硬件抽象层:HAL

摘要:
它是一组基于Linux驱动程序的程序库。统一的硬件调用接口。您可以使用位于用户空间中的HAL代码来帮助Linux驱动程序完成一些工作。接下来,我们讨论了为LED驱动器添加HAL,主要是将所有业务逻辑从LED驱动器移动到HAL模块,而LED驱动器仅保留读取和写入寄存器的功能。1.编写Linux驱动程序2。写入HALLibrary 3。写ServiceLibrary紧凑型LED驱动程序写HAL模块的步骤和原理如下。

本章主要讲硬件抽象层:HAL,它是建立在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。

下一个小节讲了Android HAL 架构。接下来讲了为led驱动增加HAL,主要是将所有的业务逻辑从LED驱动移到HAL模块,而LED驱动只保留读写寄存器的功能。

涉及的HAL步骤:1.编写Linux驱动2.编写HAL Library 3.编写Service Library 精简LED驱动

编写HAL模块的步骤和原理如下。

第一步:定义结构体和宏 编写HAL模块需要使用到3个非常重要的结构体,在第一步需要定义两个新的结构体。

第二步:编写HAL模块的open函数 open函数是HAL模块的入口点。本例中使用的是led_device_open函数。该函数主要做如下三个工作。初始化hw_device_t的子结构体。 打开设备文件。 初始化寄存器。

第三步:定义hw_module_methhods_t 结构体变量

第四步:定义HAL_MODULE_INFO_SYM函数

第五步:编写HAL模块的close 函数 当HAL模块被卸载后会调用close函数

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

总之,本章讲了在Android系统中使用Linux的一种驱动方式。

免责声明:文章转载自《硬件抽象层:HAL》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇windows下IPv6组播(C++、MFC)比特币的锁定脚本与解锁脚本下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jenkins配置Linux节点,通过ssh方式在Linux节点自动拉取github代码并执行

Jenkins可以配置Windows/Linux/等节点,这里简单介绍如何通过SSH配置Linux结点 一、安装SSH插件 一般安装Jenkins时,默认安装建议插件时,会自动安装。如果没有请自行安装。 SSH Credentials Plugin Allows storage of SSH credentials in Jenkins SSH...

php CI框架目录结构及运行机制

CI目录结构   CI主要组成部分为,application(应用文件夹)、system(系统文件夹)和index.php入口文件。     应用文件夹中主要是存放控制器、模型和视图等,系统文件夹中主要是存放组成CI的核心文件的,index.php入口文件是一个单一入口文件,所谓单一文 件是指在一个网站(应用程序)中,所有的请求都是指向的这么一个文件,由...

实战二(上):程序出错该返回啥?NULL、异常、错误码、空对象?

我们可以把函数的运行结果分为两类。一类是预期的结果,也就是函数在正常情况下输出的结果。一类是非预期的结果,也就是函数在异常(或叫出错)情况下输出的结果。比如,在上一节课中,获取本机名的函数,在正常情况下,函数返回字符串格式的本机名;在异常情况下,获取本机名失败,函数返回 UnknownHostException 异常对象。 在正常情况下,函数返回数据的类...

详解 QT 主要类 QWidget

QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 先来看内容。 AD: 2013云计算架构师峰会超低价抢票中 QT 主要类 QWidget 是本文介绍的内容,QWidget类是所有用户界面对象的基类。窗口部件是用户界面的一个原子:它从窗口系统接...

union 中null值合并原理

正常情况下null<>null 的,但是在union中如果有两个null值,那么只会显示一个。 1.null<>null  下例中可以看出null<>null SQL>  select * from dual; DU--X SQL> select * from dual where null=null; 未选...

mysql8中窗口函数

引用自: https://blog.csdn.net/yeshang_lady/article/details/102728513 在以前的MySQL版本中是没有窗口函数的,直到MySQL8.0才引入了窗口函数。窗口函数是对查询中的每一条记录执行一个计算,并且这个计算结果是用与该条记录相关的多条记录得到的。 1.窗口函数与聚合函数 窗口函数与聚合函数很像...