操做系统是经过各类驱动程序赖家与硬件设备的,它为用户屏蔽了各类各样的设备,驱动硬件是操做系统最基本的功能,而且提供统一的操做方式。设备驱动程序是操做系统最基本的组成部分之一,在Linux内核源程序中也占有60%以上,所以熟悉驱动的编写很重要。java
Linux系统将每个驱动都映射成一个文件。这些文件称为设备文件或驱动文件,都存在/dev目录中。这样,在应用程序看来,硬件设备只是一个设备文件,应用程序能够像操做普通文件同样对硬件设备进行操做,从而大大方便了对设备的处理。linux
编写驱动程序的步骤:android
(1)创建Linux的驱动骨架(装载和卸载Linux驱动)任何类型的程序都有一个基本结构,linux驱动程序也不例外。Linux内核在使用驱动时首先须要装载驱动。在装载过程当中也须要进行一些初始化的工做。算法
(2)注册和注销设备文件ubuntu
任何一个linux驱动都须要一个设备文件,不然应用程序将没法与驱动程序交互。eclipse
(3)指定与驱动相关的信息函数
驱动程序是自描述的。测试
(4)指定回调函数ui
一个驱动程序并不必定要指定全部的回调函数。操作系统
(5)编写业务逻辑
(6)编写Makefile文件
(7)编写Linux驱动程序
(8)安装和卸载Linux驱动
1.准备工做
创建存放Linux驱动程序的目录
创建驱动源代码文件
编写一个makefile文件
2. 编写linux驱动程序的骨架(初始化和退出驱动)
安装linux驱动
查看word_count是否成功安装
卸载linux驱动
查看由驱动输出的日志信息
3. 指定与驱动相关的信息
模块做者,模块描述,模块别称,开源协议
4. 注册和注销设备文件
5.指定回调函数
6.实现统计单词数的算法
7.编译、安装、卸载linux驱动程序
测试linux驱动
使用ubuntu linux测试
在android模拟器上经过原声(native)C程序测试
使用android NDK测试
使用java代码直接操做设备文件测试
使用S3C6410开发板测试
将驱动编译进linux内核进行测试
使用eclipse开发和测试linux驱动
1.创建c工程
2.创建c源代码文件链接
3.设置include路径
4.编译linux驱动
在eclipse中测试linux驱动
1.导入test_word_count.c文件
2.设置include路径
3.创建targe
4.build工程
5.运行测试程序
须要注意的是,用户空间与内核空间完成一样或相似的功能的函数,宏等资源的名称并不必定相同,有的名称相似如:malloc和kmalloc ,有的不一样如:atoi和simple_strol 等