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

为LED驱动增加HAL

时间:2016-07-03 21:42:51      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

HAL ( Hardware Abstraction Layer,硬件抽象腔,是建立在Linux驱动之上的一套翻字库。这套程序并不属于 Linux 内核, 而是属于 Linux 内核层之上的应用层。 Google 为 Android 增加 HAL 的主要目的除了尽量避免应用程序直接访问 Linux 驱动外,还有一重要原因,那就是保护 “私人财产”。

对于那些想开源的Linux驱动作者,将业务逻辑;放到 Linux 驱动里,还是 HAL 的代码中无关 紧要。而对于不想开源的 Linux驱动作者。 Linux 驱动只相当于一个目数据二传”。也就是说在 Linux 驱动中不应该保留任何不想公开的业务逻辑代码,这些代码都放在 HAI,中),而只保留与寄存器交互的代码,访问奇存器只有 Linux 内核的相关函数能做到。如果这样安排,Linux驱动就只剩下一个空壳了,唯一的功能就是接收由 HAL传过来的数据,并将这些数据写入指定的寄存器中,或从 寄存器读取数据,并返回给HAL。

Android.系统中使用 Linux驱动有两种方式。 一种是通过传统的方式直接与Linux驱动交互。例如, 直接读写设备文件的数据。另外一种是 Android特有的,就是通过 HAL模块! ·_HAL模块本质就是通过Linux共享库<.so):与Linux:驱动交互,然后应用程序再访问linux.共享库。早期的模块应用程序直接按访问Linux共字库的方式调用。而高版本的Android系统为HAL I曾加了Stub;换句话说还就是为每一个 HA1.;再利用这个配合一定的规则找到共字瘁,这样 Linux 共字库更换文件名,移动位置都很方便,Google也建议使用 Stub 的方式编写 HAL模块。

为LED驱动增加HAL

标签:

原文地址:http://www.cnblogs.com/xiaotaiyanga/p/5638716.html

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