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

  • 相关阅读:
    samba 服务搭建
    lock
    dev GridControl FilterCriteria
    dev GridControl Column 背景色
    Microsoft NLayerApp案例理论与实践
    DDD
    .Net架构师-开闭原则
    .Net架构师-面向对象的设计原则
    .Net架构师-详解面向对象
    .Net架构师-面向过程和面向对象
  • 原文地址:https://www.cnblogs.com/mayue777/p/5638309.html
Copyright © 2011-2022 走看看