第九章 硬件抽象层:HAL

本章的主要内容是硬件抽象层:HAL。本章中了解的是编写HALLinux驱动程序的步骤,具体如下:

第一步:编写Linux驱动

“编写Linux驱动”,从表面上看没什么意义,但如果要为Linux驱动添加HAL,而且像尽量保护敏感数据。Linux驱动的代码就要尽量简洁,尽可能将业务逻辑放到HAL Library中。

第二步:编写HAL Library

HAL Library就是普通的Linux Library*.so)文件。但这类文件库有一个接口。通过HAL_MODULE_INFO_SYM变量实现。Service library就是通过在这个接口中定义的id定义HAL Library的。

第三步:编写service library

尽管这步并不是必须的,担心的HAL架构要求我们这样做。Service library也是Linux library。这一步比较灵活。Service library可以使一般的Linux library,也可以是JNI library。在本章的LED驱动例子中将service library JNI library合到了一起。也就是说,service library就是JNI library。实际上这一步除了用c/c++实现*.so库文件外,还应该包含一个用Java编写的服务管理类(serviceManagerserviceManager会调用service library。而APK程序会调用serviceManager类来访问service library

LED的具体应用中,编写HAL模块步骤如下:

第一步:定义结构体和宏

第二步:编写HAL模块的open函数——open函数式HAL模块的入口点

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

第四步:定义HAL_MODULE_INFO_SYM变量

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

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

以上为本章所得。

 

转载于:https://www.cnblogs.com/JCoco/p/5654763.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值