zoukankan      html  css  js  c++  java
  • HAL 分析

    Framework&Application
    ------------------------------------
    External lib&Runtime
    ------------------------------------
    HAL
    Sensor stub   stub stub
    ------------------------------------
    Linux Device Driver
    ------------------------------------


    图上是现在Android HAL 的所在位置,从这张架构图我们知道,HAL 的目的是为了把 Android framework 与 Linux kernel 完整隔开。让 Android 不至过度依赖 Linux kernel,有点像是kernel independent的意思,让 Android framework 的开发能在不考虑驱动程序的前提下进行发展。



    HAL module架构
    struct hw_module_t;
    struct hw_module_methods_t;
    struct hw_device_t;



    hw_module_methods_t

    ---------------------------

    open


    ()
          \
           \
            \
             hw_module_t
             ----------------
            tag:uint32_t
            , , , , ,
                 \
                  \
                   \
                    \
                     hw_device_t
                     ---------------
                     close()




    HAL 使用方法
    举Sensor为列子

    1Native code通过hw_get_module调用获取HAL stub
    hw_get_module (SENSOR_HARDWARE_MODULE_ID, (const hw_module_t**)&module)

    2)通过继
    hw_module_methods_tcallbackopen设备:
    module->methods->open(module,
                
    SENSOR_HARDWARE_MODULE_ID, (struct hw_device_t**)device);
    3)通过继承 hw_device_tcallback来控制设备:
    sSensorDevice->set_on(sSensorDevice, sensor);
    sSensorDevice->set_off(sSensorDevice, sensor);

  • 相关阅读:
    初见QT---信号和槽(二)
    初见QT---信号和槽
    Python的那些事---数据分析(一)---NumPy基础
    初见QT---创建QPushButton按钮
    初见QT---QT creator常见快捷键使用
    PHP 反射 Reflection
    python 代码求阶乘
    Python中的计时器对象
    python websocket 再线聊天室的 Demo
    Tornado创建一个web服务
  • 原文地址:https://www.cnblogs.com/yuzaipiaofei/p/4124511.html
Copyright © 2011-2022 走看看