HAL是建立在Linux驱动之上的一套程序库,这套程序库并不属于Linux内核,而属于linux内核层之上的应用层。
在本章中还介绍了为什么要在Android中加入HAL,统一硬件的调用接口,由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂、不统一的接口;解决了GPL版权问题。这样这些敏感的代码就摆脱了GPL协议的束缚,那些不想开源的Linux驱动作者也就没必要开源了;针对一些特殊的要求。
还介绍了Android HAL架构,为LED驱动增加HAL,编写一款支持HAL的Linux驱动程序的步骤:1.编写Linux驱动;2.编写HAL Library;3.编写Service Library 尽管这些并不是必需的,但新的HAL架构要求这样做,Service Library也是Linux Library这一步比较灵活。
测试读写寄存器操作,在编写Linux驱动以及驱动相关的程序过程中应分段测试每一部分程序。在本小节中将编写一个由于测试上一节实现的LED驱动的程序,由于LED驱动程序的设备文件写入字节形成的数据。或从设备文件中读取字节类型的数据。为了通用。本节实现的测试测试程序通过命令行参数来传递设备文件名、字节数和要传递的字节等信息。
Android在启动时会自动装载这些属性文件。如果在多个属性文件中都定义了同一个Key和Value,那么只用第一个Key被获取。
编写调用Service的Java库,为了是程序更易于使用,可以将调用Service程序库的Java类单独封装在jar文件中,这样做任何的Android应用程序中只要引用了这个jar文件就可以向调用普通Java类一样访问LED驱动了。
相关文章
- 10-05【转载】【《Real-Time Rendering 3rd》 提炼总结】(九) 第十章 · 游戏开发中基于图像的渲染技术总结
- 10-05Delphi 中的DLL 封装和调用对象技术(刘艺,有截图)
- 10-05这是一个专注于电脑技术、软件应用、互联网、嵌入式,电子技术行业等的原创IT博客
- 10-05嵌入式程序调用函数的内部过程和机制
- 10-05嵌入式系统降低功耗的设计技术
- 10-05嵌入式linux的学习之路[转]
- 10-05构建基本的嵌入式Linux根文件系统
- 10-05系统调用和中断处理的异同(以Linux MIPS为例)
- 10-05嵌入式存储封装技术SiP、SOC、MCP、PoP的区别
- 10-0514_基于FPGA的DSS与嵌入式逻辑分析仪的调用