zoukankan      html  css  js  c++  java
  • 硬件抽象层HAL

    Google为Android加入HAL的主要目的 

    1、  统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂、不统一的接口。 

    2、  解决了GPL版权问题。由于Linux内核基于GPL协议,而Android基于Apache Licence 2.0协议。因此Google将原本位于Linux驱动中国的敏感代码向上移了一个层次。这样这些敏感代码就摆脱了GPL协议的束缚,那些不想开源的Linux驱动作者就没必要开源了。

    3、  针对一些特殊的要求。对于有些硬件,可能需要访问一些用户空间的资源,或在内核空间不方便完成的工作以及特殊需求。在这种情况下,可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。

    编写一款支持HAL 的Linux 驱动程序的步骤 

    第1 步 编写Linux 驱动  “编写Linux 驱动”,从表明上看是废话,但如果要为linux 驱动添加HAL,而且想尽量保护敏感数据。Linux 驱动的代码就要尽量简洁,尽可能将业务逻辑放到HAL Library 中。 

    第2 步:编写HAL  HAL Library 就是普通的Linux Library (*.so )文件。但这类库文件有一个接口。通过HAL MODULE_INFO SYM 变量实现。Service Library 就是通过在这个接口中定义的ID 定位HALLibrary的。 

    第3 步:编写Service Library  尽管这步并不是必需的,但新的HAL 架构要求我们这样做。Service Library 也是Linux Library 。这一步比较灵活。Service Library 可以是一般的Linux Library,也可以是JNI Library。

  • 相关阅读:
    125、TensorFlow计算图的执行
    123、TensorFlow的Job
    122、TensorFlow多设备运行
    121、TensorFlow张量命名
    关于CSRF跨域请求伪造的解决办法
    angular基于ui-router实现系统权限控制
    gulp自动化打包及静态文件自动添加版本号
    深入研究HTML5实现图片压缩上传
    移动web模拟客户端实现多方框输入密码效果
    高级功能:很有用的javascript自定义事件
  • 原文地址:https://www.cnblogs.com/sleepywei/p/5638400.html
Copyright © 2011-2022 走看看