嵌入式Linux系統(tǒng)設備驅動程序的開發(fā)
直接將驅動程序編譯進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
將驅動程序編譯成驅動模塊
在設備驅動程序中要有兩個重要函數(shù):
module_init(dev_init),module_exit(dev_exit)
利用相應的交叉編譯器以及編譯命令將驅動程序dev_driver.c編譯成dev_driver.o 這樣的動態(tài)驅動模塊。利用insmod命令給系統(tǒng)安裝驅動模塊,如果在/dev目錄下沒有相應的設備文件,就可以使用mknod創(chuàng)建一個設備文件。利用 rmmod命令卸載驅動模塊,設備文件的刪除可以用rm命令。
結語
設備驅動程序的開發(fā)是在Linux環(huán)境中最復雜的編程任務之一 。它需要和硬件打交道,容易引起系統(tǒng)崩潰,而且很難調試。掌握設備驅動程序的開發(fā)技術,將使得開發(fā)嵌入式Linux的系統(tǒng)更為迅速和有效。
參考文獻:
1. AlessandroRubmi,JonathanCorbet.Linux設備驅動程序,第3版,中國電力出版社,2006.2
2. 毛德操、胡希明,Linux內核源代碼情景分析,浙江大學出版社,2001
3. 周立功、陳明記、陳渝,ARM嵌入式linux系統(tǒng)構建與驅動開發(fā),北京航空航天大學出版社,2006年1月第1版
4. 李祥兵、鄭扣根,Linux中I2C總線驅動程序的開發(fā),計算機工程與設計,2005;26(1)
5. 鄭偉、王欽若,Linux內核空間設備驅動程序的開發(fā),微計算機信息,2003;19(12)
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論