zoukankan      html  css  js  c++  java
  • 第九章

    Android系统中使用Linux驱动有两种方式,一种是通过传统的方式直接与Liunx驱动交互,另一种是Android特有的,就是通过HAL模块。HAL是建立在Linux驱动之上的一套程序库。而这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑代码。Android加入HAL主要目的:统一硬件的调用接口、解决了GPL版权问题、还有就是针对一些特殊的要求。HAL架构的基本原理是Android系统中使用程序库调用位于内核空间的Linux驱动,Android应用程序中访问HAL中的程序库。AndroidHAL的源代码存储的位置并不固定,一般会存储在<Android源代码目录>/hardware目录中。编写一款支持HAL的Linux驱动程序的步骤:编写Linux驱动、编写HAL Library、编写Service Library。LED驱动在设备文件的read和write函数中读写指定的寄存器,基本原理是只从指定寄存器读取或写入5个字节。编写HAL模块的步骤和原理:定义结构体和宏、编写HAL模块的open函数、定义hw_module_methods_t、定义HAL_MODULE_INFO_SYM变量、编写HAL模块的close函数、编写控制LED的函数。HAL模块本质上就是通知Linux共享库与Linux驱动交互,然后应用程序再访问Linux共享库。

  • 相关阅读:
    object-c中NSString与int和float的相互转换
    Keras
    TensorFlow白皮书
    java split进行字符串分割
    Java进行post和get传参数
    MySQL 导出数据
    解析xml并且导入mysql
    MySQL显示中文
    java使用sax解析xml
    mysql connection refused
  • 原文地址:https://www.cnblogs.com/huxiaohh/p/5614749.html
Copyright © 2011-2022 走看看