• Android深度探索笔记-第九章


    HAL层属于Linux内核层之上的应用层是为了尽量避免应用程序直接访问Linux驱动和保护 “私人财产”。带HAL的 Linux 驱动就相当于将数据从HAL传到寄存器,或从寄存器传到HAL的数据二传。

    加入HAL的主要目的:1:统一硬件的调用接口,2:解决了GPl版权问题,3:针对一些特殊的要求。

    Android HAL的源代码存储的位置并不固定,一般会存储在Android源代码目录/hardware目录中。

    编写一款支持HA 的Linux驱动程序的步骤:1:编写 Linux 驱动;2:编写 HAL Library,这类库文件有一个接口。通过HAL_MODULE_INFO_ SYM变量实现;3:编写 Service Library;

    如果启动了多个android虚拟机或连接了多个Android设备。build.sh脚本文件会检测到这些设备,并将它们列出来供用户选择。

    在编写 Linux 驱动以及与驱动相关的程序的过程中应分段测试每一部分程序。

    HAL模块拥有一个固定名称的结构体变量HAL_MODULE_INFO_SYM。HAL模块由leds hal.c 和leds .hal.h组成。leds_hal.h头文件用于定义结构体,宏和引用一些系统的头文件。

    编写 HAL 模块的步骤和原理如下:1:定义结构体和宏;2:编写 HAL 模块的 open 函数;3:定义 hw_module_methods_ t 结构体变量;4:定义 HAL_MODULE_INFO_SYM 变量;5:编写 HAL 模块的 close 函数;6:编写控制 LED 的函数;

  • 相关阅读:
    vs2010 在函数级别设置优化
    从快速排序开始的代码演化
    pocket API学习笔记
    工作笔记:复制文件--从windows到ubuntu,再到fedora
    Win10 64位 Apache 2.4+MySQL 5.7+PHP 7环境搭建
    Json简介
    TCP/IP 协议详解和运作过程
    PHP 编程中 10 个最常见的错误,你犯过几个?
    php中的扩展解析
    php.ini设置详解
  • 原文地址:https://www.cnblogs.com/bbly02/p/5653832.html
Copyright © 2020-2023  润新知