Linux驱动和普通的Linux API 没本质区别,只是二者使用方式不同。
Linux系统将每一个驱动都映射成一个文件,即设备文件,保存在/dev目录中。
Linux驱动编写关键在于回调函数编写。
编写Linux驱动程序的步骤:
- 建立Linux驱动骨架(装载和卸载Linux驱动):即驱动的装载和卸载;
- 注册和注销设备文件:即创建和移除设备;
- 指定驱动相关信息:驱动程序是自描述的;
- 指定回调函数:做好数据接收响应;
- 编写业务逻辑:Linux驱动的核心部分,由多个函数、多个文件或者多个Linux驱动模块组成;
- 编写Makefile文件:该文件定义了Linux内核源代码的编译规则;
- 编译Linux驱动程序:直接编译进内核或者作为模块单独编译;
- 安装和卸载Linux驱动:单独模块型驱动程序需要使用函数装载模块。
统计单词Linux驱动程序编写步骤:
- 建立存放Linux驱动程序的目录:word_count;
- 驱动源代码文件:word_count.c;
- 编写一个Makefile文件:obj-m表示将Linux驱动作为模块编译:word_count.o;
- 编写骨架:注意用printk()函数输出日志信息;
- 安装、卸载word_count.ko并查看输出的日志信息;
- 指定驱动相关信息:模块作者、模块描述、模块别名和开源协议;
- 指定回调函数:即添加两个函数:word_count_read和word_count_write;
- 实现统计单词数的算法:注意,get_word_count函数将mem数组中第一个为“\0”的字符作为字符串的结尾符;
- 编译、安装、卸载Linux驱动程序;
10. 测试Linux驱动:Ubuntu Linux、Android模拟器、Android NDK、Java代码直接操作设备文件等等。
http://www.cnblogs.com/lv-peng/
10:58:41 2016-06-06
一个简单的Linux驱动程序:统计单词个数
原文:http://www.cnblogs.com/lv-peng/p/5566269.html