• Android深度探索HAL与驱动开发-——第9章


    第九章:
      只要讲的是硬件抽象层HAL,HAL是建立在Linux驱动上的一套程序库。HAL不是Linux内核的一部分而是位于Android的系统运行库层。首先讲的是要加入HAL的好处。包括:统一硬件的调用借口、解决GPL版权问题、针对一些特殊的要求。HAL架构的基本原理是在Android系统中使用程序库调用位于内核空间的Linux驱动,然后Android应用程序可通过NDK程序访问HAL中的程序库,或直接在Android应用程序中访问HAL中的程序库。android HAL的源代码存储的位置并不固定,一般会存储在android源代码目录中等。最终编译成的.so文件主要放在Android系统的/system/lib/hw目录。
      编写支持HAL的Linux驱动程序一般步骤为:第一步:编写linux驱动,在为Linux驱动添加HAL保护敏感数据时,Linux代码需要简洁将业务逻辑放到HAL Library中。第二步:编写HAL Library,它是普通的Linux Library文件,Service Library通过在接口中定义的ID定位HAL。第三步:编写Service Library。ServiceManager调用Service Library,APK程序调用ServiceManger类访问Service Library。在编写Linux驱动以及与驱动相关的程序过程中应分段测试每一部分程序。
      编写HAL模块步骤和原理:第一步:定义结构体和宏,第二步:编写HAL模块open函数,第三步:定义hw_module_methods_t结构体变量,第四步:定义HAL_MODULE_INFO_SYM变量,第五步:编写HAL模块close函数,第六步:编写控制LED函数。

  • 相关阅读:
    redis在centos7下安装(源码编译)
    Centos7之Gcc安装
    Jmeter工具之上传图片,上传音频文件接口
    什么是系统平均负载(Load average)
    sonar+Jenkins 构建代码质量自动化分析平台
    数据库主从相关配置参数说明
    现有数据库配置主从同步
    MySQL5.7多主一从(多源复制)同步配置
    MySQL5.7主从从配置
    MySQL5.7主从同步配置
  • 原文地址:https://www.cnblogs.com/chengqian95/p/5648246.html
Copyright © 2020-2023  润新知