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

    HAL(硬件抽象层)是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。在传统的Linux系统中Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑代码。

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

        第1步:编写Linux驱动

        第2步:编写HAL Library

        第3步:编写Service Library

        在编写Linux驱动以及与驱动相关的程序的过程中应分为段测试每一部分程序,测试当然要从Linux驱动开始,每编写完一部分,应使用相应的方法进行测试,以便将当前编写的程序的Bug降到最低。任何被系统自动调用的程序都会有一个标准的接口,这个接口相当于一个约定的规则,不管任何程序,只要遵循这个规则,就可以成功被调用。既然HAL模块也可以被Android系统自动调用,那个自然也拥有类似main或init函数的接口,只不过这个接口不是函数,而是一个固定名称的结构体变量HAL_MODULE_INFO_SYM。也就是说HAL程序都必须有一个HAL_MODULE_INFO_SYM变量。

    编写HAL模块的步骤

        第1步:定义结构体和宏

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

        第3步:定义hw_module_methods_t结构体变量

        第4步:定义HAL_MODULS_INFO_SYN变量

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

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

  • 相关阅读:
    ZOJ 3735 Cake(区间DP,最优三角剖分)
    POJ 1185 炮兵阵地 (状态压缩DP)
    POJ 3415 Common Substrings (后缀数组,长度不小于k的公共子串的个数)
    NSNumberFormatter 千分符
    遭遇String.getBytes()
    HDFS数据的Checksum
    hadoop mapreduce作业流程概论
    HDFS 安全模式
    hadoop的dfs.replication
    hadoop升级
  • 原文地址:https://www.cnblogs.com/zgen1/p/5609524.html
Copyright © 2011-2022 走看看