zoukankan      html  css  js  c++  java
  • 第九章 读书笔记

    Linux系统中Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑代码。

        2.GoogleAndroid加入HAL主要有如下的目的:

         (1)统一硬件的调用接口。

         (2)解决了GPL版权问题。

         (3)针对一些特殊的要求。

    3.编写一款支持HALLinux驱动程序的步骤:

          第一步:编写Linux驱动、

          第二步:编写HAL Library

          第三步:编写Service Libray

    4.LED驱动在设备文件的readwrite函数中读写指定的寄存器。基本原理是只从指定寄存器读取或写入5个字节,第1个字节用于指定读写的动作以及寄存器类型。后4个字节是读写的实际的数据(因为LED 驱动只涉及操作干个int 类型数据的寄存器,因此便用4 个字节来表示一个int 类型的数据)。在与LED驱动交互时,只要向设备文件读取或发送5个字节的数据,就可以读写指定的寄存器。

    5.由于LED驱动程序的设备文件接收的不是字符串,而是字节类型的数据,因此需要单独做一个程序向设备文件写入字节形式的数据,或从设备文件中读取字节类型的数据。

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

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

          第一步:定义结构体和宏

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

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

          第四步:定义HAL_MODULE_INFO_SYM变量

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

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

    9、在Android系统中使用Linux驱动方式。

          (1)通过传统的方式直接与Linux驱动交互,如直接读写设备文件的数    据。

           (2)另外一种是Android特有的,就是通过HAL模块。HAL模块本质上就是通过Linux共享库与Linux驱动交互,然后应用程序再访问Linux共享库。

  • 相关阅读:
    keepalived 打印日志
    mysql 主从切换
    mysql 开启只读 普通用户无法写入
    主从复制同步mysql数据库后会导致从上用户无法登陆
    MySQL性能优化的最佳20+条经验(1)
    MySQL性能测试工具之mysqlslap
    关于ad所用端口
    mysql 从设置只读
    ARP表信息引起的telnet 时断时通
    Caused by: java.sql.SQLException: ResultSet is from UPDATE. No Data.
  • 原文地址:https://www.cnblogs.com/yue-er/p/5649746.html
Copyright © 2011-2022 走看看