从这章开始进入了实战阶段,这一章首先介绍了linux驱动的工作方式,linux将每一个驱动都映射成一个文件,这些文件被称为设备文件或驱动文件,都保存在/dev目录中,使得linux驱动交互就像是普通文件交互一样。
编写linux驱动程序的步骤:
1.建立linux驱动骨架
在linux驱动程序中需要提供两个函数来分别处理驱动初始化和退出的工作。这两个函数分别用module_init和module_exit宏指定。
2.注册和注销设备文件
任何一个linux驱动都需要有一个设备文件,否则应用程序与驱动程序无法交互,建立设备文件的工作一般在第一步编写的处理linux初始化工作的函数中完成,删除设备文件一般在第一步编写的处理linux退出工作的函数中完成,分别使用misc_register和misc_deregister函数创建和移除设备文件。
3.指定与驱动相关的信息
4.指定回调函数
5.编写业务逻辑
6.编写makefile文件
7.编译linux驱动程序
8.安装和卸载linux驱动
然后开始编写第一个linux驱动的例子:统计单词个数,在完成代码编写后,要使用多种方式来测试linux驱动:
1.使用Ubuntu linux来测试linux驱动
2.在Android模拟器上通过原生C程序测试linux驱动
3.使用Android NDK测试linux驱动
4.使用java代码直接操作设备文件来测试linux驱动
5.使用S3C6410开发板上使用可执行程序测试linux驱动
将驱动编译linux内核进行测试
1.将word_count.c文件放入linux内核源代码
2.修改Kconfig文件
3.修改makefile文件
4.设置.Config文件
5.编译linux内核
使用eclipse开发和测试linux驱动程序
开发:
1.建立c工程
2.建立c源代码文件链接
3.设置include路径
4.编译linux驱动
测试:
1.导入test_word_count.c文件
2.设置include路径
3.建立Target
4.Bulid工程
5.运行测试程序