ANDROID深度探索(卷1)HAL与驱动开发 第六章

Linux系统 将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中。

由于大多数Linux驱动都有与其对应的设备文件, 因此与Linux驱动交换数据就变成了与 设备文件交换数据。

编写Linux驱动程序的步骤:

第 1 步:建立 Linux 驱动骨架 (装载和卸载 Linux 驱动)。

第 2 步:注册和注销设备文件。

第 3 步:指定与驱动相关的信息。

第 4 步:指定回调函数。

第 5 步:编写业务逻辑。

第 6 步:编写 Makefile文件。

第 7 步:编译 Linux 驱动程序。

第 8 步:安装和卸载 Linux 驱动。(上面 8 步中的前 5 步是关于如何编写 Linux 驱动程序的,通过后3步可以使 Linux 驱动正常工作。)

在 Android 系统中 Linux 驱动主要的使用者是 APK 程序。 因此, Linux 驱动做完后必须要用 APK 程序进行测试才能说明 Linux 驱动可以正常使用。由于上一节在 Android 虚拟机上使用 C 语 言编写的可执行程序测试了 Linux驱动,因此很容易想到可以利用 AndroidNDK来测试Linux 驱动, 由于 Android NDK 也使用 C/C++来编写程序, 因此可以利用上一节的 C 语言代码, 当然, 还得 加上一些 AndroidNDK特有的代码。在使用 AndroidNDK 测试 Linux 驱动之前需要做如下两件事。(由于 Linux 驱动模块不会随 Android 系统启动而装载, 因此必须执行 build.sh 脚本文件安 装 word count 驱动。      不能使用默认方式启动 Android 模拟器,而要使用我们自己编译的Linux内核启动 Android 模拟。)

时间: 2024-10-24 14:41:00

ANDROID深度探索(卷1)HAL与驱动开发 第六章的相关文章

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数 统计单词个数的功能是封装在Linux驱动中的. Linux驱动的工作和访问方式是Linux亮点之一,同时受到了业界大防范好评.Linux系统将每一个驱动都映射成一个文件.这些文件称为设备文件或者驱动文件,都保存在 /dev 目录中.这种设计理念使得与Linux驱动进行交互就像与普通文件进行交互一样容易.当然,也比访问Linux API 更容易.由于大多数Linux驱动都有与其对应的设备文件,因此与Li

Android深度探索(卷1)HAL与驱动开发第六章读书笔记

编写Linux驱动程序的步骤 第1步:建立Linux驱动骨架(装载和卸载Linux驱动) 第2步:注册和注销设备文件 第3步:指定于驱动相关的信息 第4步:指定回调函数 第5步:编写业务逻辑 第6步:编写Makefile文件 第7步:编译Linux驱动程序 第8步:安装和卸载Linux驱动 安装Linux驱动: # insmod word_count.ko 查看word_count是否成功安装: # lsmod | grep  word_count 卸载L inux驱动: # rmmod wor

Android深度探索(卷1)HAL与驱动开发第六章总结

操作系统是通过各种驱动程序赖家与硬件设备的,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并且提供统一的操作方式.设备驱动程序是操作系统最基本的组成部分之一,在Linux内核源程序中也占有60%以上,因此熟悉驱动的编写很重要. Linux系统将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都存在/dev目录中.这样,在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作,从而大大方便了对设备的处理. 编写驱动程序的步骤: (1)建

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数 读书笔记

本章是一个具体的例子,来详细的介绍开发和测试Linux驱动程序的完整过程.尤其是测试Linux驱动.在这个统计单词个数的实例中,重点是该算法的实现技术:即Linux驱动,而不是如何统计的. 6.1Linux驱到底是什么 Linux驱动的工作方式和访问方式是Linux的特点之一.Linux系统将每一个驱动都映射成一个文件,这些文件被称为驱动文件或设备文件,保存在dev目录中.由于大多数Linux驱动都有与其对应的设备文件,因此与Linux驱动交换数据就变成了与设备文件交换数据.事实上,编写Linu

Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记

Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记     本章学习了使用git下载两套源代码并搭建两个开发环境.分别为Android源代码和Linux内核源代码.Android源代码中包含了HAL(即硬件抽象层) 的代码,并学习了如何搭建这两种开发环境. Android 的移植的本质就是Linux内核的移植,Linux内核的移植主要是Linux驱动的移植.而开发和测试Linux驱动就需要安装以上两个开发环境. 搭建两套环境的具体步骤如下: 一.下载编译和测试A

Android深度探索(卷1)HAL与驱动开发 第三章 Git使用入门 读书笔记

Android深度探索(卷1)HAL与驱动开发 第三章 Git使用入门 读书笔记     本章是对Git的一个概述. Linux是一个开源的系统.事实上,在Linux上许多软件都和底层程序以及内核驱动有关,然而Linux内核的版本非常多,如果每个版本上的软件都采用安装包的形式,则匹配这么多版本的安装包将十分庞大.所以有很多软件不是以二进制安装包的形式来安装和使用的.而是将源代码下载下来,并在每个用户自己的Linux中编译并安装,即使用make 和make install 命令.而Linus作为L

Android深度探索(卷1)HAL与驱动开发读后感---第一章

第1章  Android系统移植与驱动开发概述 1.1  Android 系统架构 Android是一个非常优秀的嵌入式操作系统.经过几年的发展和演进,Android已经发展形成林非常完善的系统架构. Android的系统架构分为4层:Linux内核.C/C++代码库.Android SDK API.应用程序. 1.2  Android 系统移植的主要工作     Android系统移植可分为两部分:应用移植和系统移植.Android移植的主要工作如下:移植Linux驱动.移植HAL. 1.3

Android深度探索(卷1)HAL与驱动开发第三章总结

Git—由linux之父Linus编写,是进行源代码管理的一种软件.Linus以一个文件系统专家和内核设计者的视角对Git进行了设计,其独特的设计让Git拥有了非凡的性能和最为优化的存储能力,Git在各方面都优于其他同类的的源代码管理软件.在学习Android及linux 内核,驱动开发的过程中会涉及大量的源代码,而这些代码都是由Git 管理的,因此,在学习Android移植与linux驱动开发之前了解Git的理论和基本使用方法.安装Git 以及查看Git 文档并不难,而在源代码的提交与获取的过

Android深度探索(卷1)HAL与驱动开发读后感---第二章

  第2章  搭建Android开发环境 2.1  Android底层开发需要哪些工具 开发.测试和调试Linux驱动.HAL程序库需要哪些工具: JDK6或以上版本: Eclipse3.4或以上版本: ADT: CDT: Android SDK: Android NDK: 交叉编译环境: Linux内核源代码: Android源代码: 用于调试开发板和串口工具:minicom . 2.2  安装JDK     直接下载后进行配置. 2.3  搭建Android应用程序开发环境     通过本节