操做系統是經過各類驅動程序賴家與硬件設備的,它爲用戶屏蔽了各類各樣的設備,驅動硬件是操做系統最基本的功能,而且提供統一的操做方式。設備驅動程序是操做系統最基本的組成部分之一,在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 等