zoukankan      html  css  js  c++  java
  • Android深度探索(卷1)HAL与驱动开发 心得体会 第九章 硬件抽象层:HAL

    Android深度探索(卷1)HAL与驱动开发 心得体会

    第九章 硬件抽象层: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,内核驱动
    主要是要向用户层开放接口,让硬件模块和内核可以交互。

  • 相关阅读:
    那些年,我还在学习asp.net(二)
    那些年,我还在学ADO.NET
    那些年,我还在学css
    数据库存储过程游标函数
    数据库视图索引触发器
    那些年,我还在学asp.net(一)
    向SQL2005中导入.dbf文件中的数据
    那些年,我还在学习html
    CMenu遍历
    网站记载
  • 原文地址:https://www.cnblogs.com/xl9313/p/5607243.html
Copyright © 2011-2022 走看看