Android深度探索读书笔记 第九章

     HAL是建立在linux驱动之上的一套程序库,这套程序库属于linux内核层之上的应用层。编写一款支持HALlinux驱动程序:1、在为linux驱动添加HAL,要想尽量保护敏感数据。Linux驱动的代码就要尽量简洁,尽可能将业务逻辑放到HAL library中。2HA类就是普通的linux Library文件 ,但这类库文件有一个接口。通过HAL_MODULE_INFO_SYM变量实现。3service Library也是Linux Library,也就是说service Library就是JNI Libraryservice manager会调用service library,而APK程序会调用servicemanager类来访问service library。编写调用LED驱动的HAL模块,在这个HAL模块中包含了LED驱动的所有业务逻辑,实际上HAl模块也是普通的linux共享库(.so文件),可以被android系统自动装载,任何被系统自动调用的程序都会有一个接口,而所有的HAL程序都必须有一个HAL_MODULE_INFO_SYM变量。具体编写HAL模块的步骤:1、定义两个新的结构体,这两个结构体的第一个变量的数据类型必须是hw_module_thw_device_t。还要为HAL模块定一个ID,这步等于是编写leds_hal.h头文件的代码。2、编写HAL模块的open函数,open函数是HAL模块的入口点,该函数的作用:初始化hw_device_t的字结构体;打开设备文件;初始化寄存器。3、定义hw_module_methods_t结构体变量。4、定义HAL_MODULE_INFO_SYM变量。5、编写HAL模块的close函数。6、编写控制LED的函数。最后测试led驱动。

         

                                                          http://www.cnblogs.com/sam0304/

转载于:https://www.cnblogs.com/sam0304/p/5642175.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值