读书笔记第九章

HAL ( Hardware Abstraction Layer,硬件抽象腔,是建立在 Linux 驱动之上的一套翻字库。这套程序不属于Linux内核,而是属于Linux内核层之上的应用层。Google为Android增加HAL的主要目的除了尽量避免应用程序直接访问Linux驱动之外,还有一个重要原因,就是保护“私人财产”。在传统的Linux系统中Linux驱动一般有两种类型代码:访问硬件寄存器的代码和业务逻辑代码。对于访问硬件寄存器的代码,并没有什么秘密可言,因为这都是调用的Linux内核的标准函数进行的标准操作。编写支持HAL的Linux驱动程序步骤:1.编写Linux驱动2.编写HAL library3.编写service。编写HAL模块步骤:1.定义结构体和宏2.编写HAL模块的open函数。3.定义hw_module_methods_t的结构体变量。4.定义HAL——MODULE_INFO_SYM5.编写HAL模块的close函数。6.编写LED的函数。在Android系统中使用Linux驱动两种方式。一种是通过传统方式直接与Linux驱动交互。如直接读写设备文件的数据。另外一种是Android特有的,就是通过HAL模块。HAL模块本质上是通过Linux共享库与Linux驱动交互。然后应用程序再访问Linux共享库。

转载于:https://www.cnblogs.com/zhaoshuaishuai/p/5652863.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值