zoukankan      html  css  js  c++  java
  • Android深度探索(卷1)HAL与驱动开发学习笔记(9)

    Android深度探索(1)HAL与驱动开发学习笔记(9

    第九章 硬件抽象层HAL

    G o o g l eAndroid加入HAL主要有如下的目的:

    1、统一硬件的调用接口

    由于H A L有标准的调用接口,所以可以利用HAL屏蔽L i n u x驱动复杂、不统一的接口;

    2、解决了G PL版权问题

    由于L i n u x内核基于GP L协议,而A n d r o i d基于A p a c h e Licence 2 . 0协议.因此G o o g l e玩了个“穿越”将原本位于L i n u x驱动中的敏感代码向上移了一个层次,这样这些敏感代码就摆脱了G P L协议的束缚,。那些不想开源的L i n u x驱动作者也就没必要开源了。

    3、针对一些特殊的要求

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

     

     

    编写支持HALLinux驱动的步骤

    1.编写Linux驱动

    2.编写HAL library

    3.编写Service library

    编写HAL模块的步骤和原理

    1.定义结构体和宏

    *描述HAL模块的hw_moudle_t结构体

    *描述HAL设备的hw_device_t结构体

    *描述模块入口函数的hw_moudle_motheoth_t结构体

    2.编写HAL模块的open函数

    3.定义hw_moudle_motheoth_t结构体变量

    4.定义HAL_MOUDLE_INFO_SYM结构体变量

    5.编写HAL模块的close函数

    6.编写控制函数

  • 相关阅读:
    spark实验四(2)
    spark实验四
    神奇的一天
    Spark实验三
    Scala实验任务三
    Scala实验任务二
    Scala语言实验任务一
    kettle的基本使用
    质量属性之安全性战术
    datax相关
  • 原文地址:https://www.cnblogs.com/zhangnene/p/5640705.html
Copyright © 2011-2022 走看看