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

    第九章 

           HAL是建立在linux驱动之上的一套不属于linux内核的程序库。它属于linux内核层之上的应用层。HAL中存放了linux驱动中不应该保留的任何不想公开的业务逻辑代码。所以HAL的目的是:统一硬件的调用接口、解决QPL版权问题、针对一些特殊要求。

    Android HAL架构的发展:

    1、在Android系统中使用程序库(.so文件)调用位于内核空间的linux驱动。然后Android应用程序(APK文件)可以通过NDK程序访问HAL中的额程序库,或直接在Android应用程序中访问HAL中的程序库。

             2、在HAL模块的核心代码保持原状,添加新的HAL架构要求的代码入口。改代码无需装载.so文件,只需要通过一个ID来定位相应的.so文件。

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

    1、编写linux驱动

    2、编写HAL Library

    3、编写Service Library

    测试读写寄存器操作的命令行语法格式:

    Rwdev:命令行程序。

    <r|w>:读或写命令,r表示读取寄存器中的数据,w表示向寄存器写入数据。

    <dev_file>:设备文件名,例如/dev/s3c6410_leds_hal。

    <byte_count>:写入或读取的字节数。

    [byte1] [byte2] …[byten]:写入的字节数。

     编写调用LED驱动的HAL模块的步骤:

    1、定义结构体和宏

    2、编写HAL模块的open函数

    3、定义hw_module_methods_t结构体变量

    4、定义HAL_MODULE_INFO_SYM变量

    5、编写HAL模块的close函数

    6、编写控制LED的函数

  • 相关阅读:
    纯CSS打造圆角Table效果
    [RabbitMQ+Python入门经典] 兔子和兔子窝[转]
    salesforce 调用webservice
    maven+spring+cxf编写web service
    Appfuse 教程
    eclipse的maven project,如何添加.m2里的那些jar包?
    java fullstack 框架
    Maven Jetty Plugin运行配置jetty:run
    Appfuse下载及安装步骤
    fullstack设计
  • 原文地址:https://www.cnblogs.com/SamLee-/p/5650250.html
Copyright © 2011-2022 走看看