基于嵌入式Linux系统设备驱动程序的开发
设备驱动程序的使用
直接将驱动程序编译进linux内核
将设备驱动程序复制到 linux/drivers相关的子目录下,比如字符设备驱动程序 就放在linux/drivers/char下。
修改linux/drivers相关的子目录的Makefile,
如obj-$(config_dev_driver) +=dev_driver.o,这样在编译内核时将会编译dev_driver.c,生成 dev_driver.o.
对内核进行重新编译时,进行相关的配置,比如要使用AT91RM9200的UART,就要如下配置:
Character devices -> Serial drivers ->AT91RM9200 serial port support
将驱动程序编译成驱动模块
在设备驱动程序中要有两个重要函数:
module_init(dev_init),module_exit(dev_exit)
利用相应的交叉编译器以及编译命令将驱动程序dev_driver.c编译成dev_driver.o 这样的动态驱动模块。利用insmod命令给系统安装驱动模块,如果在/dev目录下没有相应的设备文件,就可以使用mknod创建一个设备文件。利用 rmmod命令卸载驱动模块,设备文件的删除可以用rm命令。
结语
设备驱动程序的开发是在Linux环境中最复杂的编程任务之一 。它需要和硬件打交道,容易引起系统崩溃,而且很难调试。掌握设备驱动程序的开发技术,将使得开发嵌入式Linux的系统更为迅速和有效。
参考文献:
1. AlessandroRubmi,JonathanCorbet.Linux设备驱动程序,第3版,中国电力出版社,2006.2
2. 毛德操、胡希明,Linux内核源代码情景分析,浙江大学出版社,2001
3. 周立功、陈明记、陈渝,ARM嵌入式linux系统构建与驱动开发,北京航空航天大学出版社,2006年1月第1版
4. 李祥兵、郑扣根,Linux中I2C总线驱动程序的开发,计算机工程与设计,2005;26(1)
5. 郑伟、王钦若,Linux内核空间设备驱动程序的开发,微计算机信息,2003;19(12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)