zoukankan      html  css  js  c++  java
  • Android深度探索HAL与驱动开发 第六章

    第六章


     本章是android底层开发的第一个章节,本章是第一个linux驱动程序,统计单词个数。

    本章作为实战第一章,首先要做的就是了解linux驱动到底是个什么东西,首先了解linux驱动的工作方式,linux系统将每一个驱动都映射成一个文件,保存在/dev中,再使用c语言函数ioctl向驱动的设备文件发送打印命令。编写linux驱动程序,需要接受被写入的数据,并将它们通过pc的并口、usb等端口发送给打印机, 需要linux响应应用程序传过来的数据。

        然后编写linux驱动程序的步骤,步骤如下:

    1建立linux驱动骨架。

      Module_init 和module_exit宏制定

    2注册和注销设备文件

      Misc_register   mics_deregister

    3.指定驱动相关信息

          Module_author  module_license module_alias module_description

    4.制定回调函数

    5.编写业务逻辑

    6.编写makefile文件

    7.编译linux驱动程序

    8.安装和卸载linux驱动

    然后,我们就可以真正开始我们的程序了,利用设备文件作为介质与应用程序进行交互。应用程序通过向设备文件传递一个由空格分隔的字符串,然后从设备文件读出来的是该字符串包含的单词数。在编写前首先建立存放驱动程序的目录,然后建立驱动源代码文件并编写一个makefile文件,之后进行编写骨架等一系列操作,通过书上内容可以完美编译。 

    最后测试驱动,可以使用的方法有:

    1 Ubuntu linux进行测试

    2 在android模拟器上通过原生c程序测试

    3 使用android NDK测试

    4 使用java代码直接操作设备文件测试

    5使用S3C6410开发板测试

    6 将驱动编译进linux内核进行测试

    最后一个小节讲述了使用Eclipse开发和测试linux驱动程序,利于深入了解内核技术。

    开发步骤如下:

    1.建立c工程

    2建立c源代码文件链接

    3设置include路径

    4编译linux驱动

    测试步骤如下

         1导入test_word_count.c文件

         2设置include路径

         3建立target

         4build工程

         5运行测试程序

    虽然驱动的功能不复杂,但是足以让我了解驱动的完成开发过程。本章虽然仅仅是一个简单的实例,但是包含内容很多,

  • 相关阅读:
    linux下shell显示-bash-4.1#不显示路径解决方法
    update chnroute
    An error "Host key verification failed" when you connect to other computer by OSX SSH
    使用dig查询dns解析
    DNS被污染后
    TunnelBroker for EdgeRouter 后记
    mdadm详细使用手册
    关于尼康黄的原因
    Panda3d code in github
    Python实例浅谈之三Python与C/C++相互调用
  • 原文地址:https://www.cnblogs.com/qwhw/p/5560507.html
Copyright © 2011-2022 走看看