zoukankan      html  css  js  c++  java
  • 第九章 硬件抽象层 HAL

    HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Liunx内核,而是属于Linux内核层之上的应用层。

    Android HAL架构

    最初架构

    新的Android HAL架构

    编写支持HAL的Linux驱动程序的步骤

    第一步:编写Linux驱动

    第二步:编写HAL Library

    第三步:编写Service Library

    为LED增加HAL

       1.编写一款支持 HAL 的 Linux 驱动程序的步骤

        第 1 步:编写 Linux 驱动

    第 2 步:编写 HAL Library

    第 3 步:编写 Service Library

       2.颠覆 Linux 驱动的设计理念: 精简 LED 驱动

    在第7 章实现的 LED 驱动的基础进程修改,去掉所有与读写寄存器规则相关的代码,只保留了创建设备文件及与寄存器交互的代码。

       3.测试读写寄存器操作

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

       4.编写调用LED驱动的HAL模块

         编写 HAL模块的步骤和原理:

          第1步:定义结构体和宏

          第2步:编写 HAL模块的 open 函数

          第3步:定义 hw_module_methods_ t 结构体变量

          第4步: 定义 HAL_MODULE_INFO_SYM 变量

          第5步:编写 HAL模块的 close 函数

          第 6步:编写控制 LED 的函数  

    5.编写调用 HAL 模缺的 Service

    6.HAL模块的存放路径和命名规则

    7.编写调用 Service 的 Java 库

    8.测试 LED 驱动

  • 相关阅读:
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    695. Max Area of Island
    2015 Benelux Algorithm Programming Contest E-Excellent Engineers
    URAL
    Codeforces Round #309 (Div. 2) -D. Kyoya and Permutation
    Codeforces Round #144 (Div. 2) D table
    Codeforces Round #429 (Div. 2)
    Codeforces 610D Vika and Segments
    Codeforces 757D
  • 原文地址:https://www.cnblogs.com/hello3399/p/5652405.html
Copyright © 2011-2022 走看看