读书笔记第九章

第九章
HAL是建立在linux驱动之上的一套程序库。这套程序库并不属于linux内核,而是属于linux内核层之上的应用层。可以用来保护不想公开源代码的作者。
HAL架构比较简单,其基本原理就是在安卓系统中使用程序库调用位于内核空间的linux驱动,然后安卓应用程序可以通过NDK程序访问HAL中的程序库,或直接在安卓应用程序中访问HAL中的程序库。
编写一款支持HAL的linux驱动程序的步骤:
1、编写linux驱动,linux驱动的代码要尽量简介,尽可能将业务逻辑放到HAL library中。
2、编写HAL library,HAL library就是普通的linux library文件,单这类库文件有一个接口。通过HAL_MODULE_INFO_SYM变量实现。
3、编写Service Library,这是必要的步骤。
测试读写寄存器操作:在编写linux驱动以及与驱动相关的程序的过程中应分段测试每一部分程序,每编写完一部分,应使用相应的方法进行测试,以便将当前编写的程序bug降到最低。
编写HAL模块的步骤和原理:
1、定义结构体和宏。
2、编写HAL模块的open函数作为程序切入口。
3、定义hw_module_methods_t结构体变量。
4、定义HAL_MODULE_INFO_SYM变量。
5、编写HAL模块的close函数。
6、编写控制LED的函数。

原文地址:https://www.cnblogs.com/spurlash/p/5651720.html