• 第九章 硬件抽象层:HAL 读后感


    Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念
    1,源代码和目标位置
    源代码: /hardware/libhardware目录,该目录的目录结构如下:
    /hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录
    2,HAL层的实现方式
    JNI->通用硬件模块->硬件模块->内核驱动接口
    具体一点:JNI->libhardware.so->xxx.xxx.so->kernel
    具体来说:android frameworks中JNI调用/hardware/libhardware/hardware.c中定义的hw_get_module函数来获取硬件模块,
    然后调用硬件模块中的方法,硬件模块中的方法直接调用内核接口完成相关功能
    3硬件模块
    硬件模块的开发主要是完成/hardware/libhardware/include/hardware目录下对应的头文件中的内容,主要是硬件模块头文件和hardware.h中
    的结构体中定义了一些函数指针,调用内核提供的接口将具体的函数实现,然后编译成指定名称的动态链接库放到/system/lib/hw目录下即可。
    用一句话来概括:硬件模块的开发就是定义一个hardware.h中定义的hw_module_t结构体,结构体名称为宏HAL_MODULE_INFO_SYM,然后实现结构体
    的相关内容即可。
    4,内核驱动
    主要是要向用户层开放接口,让硬件模块和内核可以交互。

  • 相关阅读:
    linux下好用的文本编辑器
    linux下的截图
    linux三剑客之grep
    批量修改机器密码脚本
    shell实例九九乘法表
    卸载磁盘 device is busy
    解决 fatal error: fftw3.h: No such file or directory
    linux磁盘空间释放问题
    硬盘容量换算
    shell数组
  • 原文地址:https://www.cnblogs.com/mayue777/p/5638309.html
Copyright © 2020-2023  润新知