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运行测试程序

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

时间: 2024-10-15 21:19:34

Android深度探索HAL与驱动开发 第六章的相关文章

Android深度探索HAL与驱动开发-——第六章

第六章主要介绍了Android环境下java编写接口程序.包括了led接口.串口.ZigBee和驱动.wi-fi接口.播放器等等.   (1)LED驱动电路:GPIO接口.端口组GPJ3包含六个控制寄存器:控制寄存器.上拉寄存器.数据寄存器.LED字符设备实现的函数有open.release.read.write.ioctl.在测试中make进行编译得到led.ko文件使用insmod指令加载.    LED界面设计:新建工程.添加图片资源.编译main.XML文件进行UI设计.导入代码.添加J

Android深度探索--HAL与驱动开发----第六章读书笔记

Linux驱动程序与其他类型的Linux程序一样拥有自己的规则,下面给出一个编写基本的Linux驱动的一般步骤: (1)建立Linux驱动的骨架(装载和卸载Linux驱动): (2)注册和注销设备文件: (3)指定与驱动相关的信息: (4)指定回调函数: (5)编写业务逻辑: (6)编写Makefile文件: (7)编译Linux驱动程序: (8)安装和卸载Linux驱动. 对于一个Linux驱动程序,一开始可以在Ubuntu Linux上做前期开发和测试.对于访问硬件的部分也可以在Ubuntu

Android深度探索HAL与驱动开发 第四章

Android深度探索HAL与驱动开发 第四章 源代码的下载和编译 读书笔记 一.下载编译和测试Android源代码 1.配置Android源代码下载环境 创建一个用于存放下载脚本文件的目录(可将该文件放到任何一个目录在这里使用-/bin) # mkdir ~/bin # PATH=~/bin:$PATH 2.下载repo脚本文件(用于下载Android源代码) # curl htttps://dl-ssl.google.com/dl/googlesource/git-repo/repo> ~/

Android深度探索HAL与驱动开发 第三章

Android深度探索HAL与驱动开发 第三章 Git使用入门 读书笔记 Git是对源代码进行管理的软件. 一.安装Git # apt-get install git # apt-get install git-doc git-emall git-gui gitk 用以下命令控制Git: # apt-get install git-core # apt-get install git-doc git-svn git-email git-gui gitk 二.查看Git文档 查看git-check

Android深度探索HAL与驱动开发 第四章 源代码下载和编译

前面说过Android移植主要就是Linux内核的移植,而Linux内核移植主要是Linux驱动的移植,所以为了开发和测试Linux驱动,有必要学习在Ubuntu Linux下如何搭建两套开发环境:Android应用程序开发环境和Linux内核开发环境.Linux内核开发环境的搭建是重点中的重点.下面根据书上的内容和网上的资料写出了步骤: (1)配置Android源代码下载环境: (2)Android源代码目录分别存放了Android源代码的不同子项目 (3)下载Android源代码中的一部分两

Android深度探索HAL与驱动开发 第三章 Git入门

Git功能十分复杂,简单来说它使你的开发更为快捷和可控,尤其是在开源项目上展现的友好的交互和回馈. 熟悉一些git指令操作对开发者的帮助可以避免开发者受到一些外在因素打断开发进度,甚至延误项目的check日期.提交指定代码库需要RSA身份验证,而且需要公钥确定设备能够提交管理代码库. 如果源代码是最能体现软件作者的真正思路的.就像学习Linux内核开发,值找基本所谓的“权威”书籍来看,并不能真正体会Linux内核的核心设计理念.以Andorid源代码的解析和编译测试为基础的驱动开发.要使用内嵌在

Android深度探索--HAL与驱动开发----第五章读书笔记

第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们经常用的手机类似, 也包含显示屏. 键盘. Wi-Fi. 蓝牙等模块(可 能有的是选配〉.但与手机不同的是在开发板上安装嵌入式系统要比手机容易得多.而且一般开发 扳都有很多扩展的端口,可以很容易开发定制的硬件, 并与开发板链接.因此,开发板相对于孚机 来说,更适合对程序进行测试,尤其适合对底层的 L

Android深度探索HAL与驱动开发 第五章

第五章 本章学习了搭建S3C6410开发板的测试环境,其中S3C6410开发板是三星推出的一种低功耗,高性价比的RISC处理器,应用广泛,并为2.5G和3G通信服务提供了优化的 硬件性能,内置强大硬件加速其,满足高端服务通信中的数据宽带要求. 搭建开发板的测试环境首先要安装串口调试工具(minicom),因为开发linux驱动程序与android应用程序不同,无法在eclpse上开发.安装minicom步骤如下: 1.检测当前系统是否支持usb转串口 2.安装minicom #apt—git i

Android深度探索HAL与驱动开发-——第9章

第九章:   只要讲的是硬件抽象层HAL,HAL是建立在Linux驱动上的一套程序库.HAL不是Linux内核的一部分而是位于Android的系统运行库层.首先讲的是要加入HAL的好处.包括:统一硬件的调用借口.解决GPL版权问题.针对一些特殊的要求.HAL架构的基本原理是在Android系统中使用程序库调用位于内核空间的Linux驱动,然后Android应用程序可通过NDK程序访问HAL中的程序库,或直接在Android应用程序中访问HAL中的程序库.android HAL的源代码存储的位置并