標籤:
統計單詞數的word_count 驅動是本書實現的第一個完整的Linux 驅動。本章不僅是介紹一個樣本,還介紹了如何使用不同的方法測試Linux 驅動。
編寫Linux驅動程式步驟:
1:建立Linu x 驅動骨架(裝載和卸載Linu x 驅動)
2:註冊和登出裝置檔案
3:指定與驅動相關的資訊
4:指定回呼函數
5:編寫商務邏輯
6:編寫Makefile檔案
7:編譯Linux 驅動程式
8:安裝和卸載Linux驅動程式
來源程式目錄:<光碟片根目錄>/sources/word_count
1.主要原理:利用裝置檔案作為介質與應用程式進行互動。應用程式通過向裝置檔案傳遞一個自空格分隔的字串(每一個被空格隔開的子字串稱為,然後從裝置檔案讀出來的是該字串包含的單詞數。本例的驅動程式使用C語言實現,原始碼檔案路徑如下。
隨書光碟片: <光碟片根目錄>/sources/ch06/word count/word count.c
虛擬環境:/root/drivers/ch06/word count/word count.c
2.準備工作:首先使用下面的命令建立存放Linux 驅動程式的目錄。
# mkdir -p /root/drivers/ch06/word _count
#cd /root/drivers/ch06/word count
然後,使用下面的命令建立驅動原始碼檔案(word count.c)
#echo ‘’> word_count . C
最後編寫一個Makefile 檔案
#echo ‘obj-m :=word_count . o’ > Makefile
3.編寫Linux 驅動程式的骨架(初始化和退出驅動):骨架部分主要是Linux驅動的初始化和退出函數。
一個完整的Linux驅動程式都會指定這些與驅動相關的資訊。一般需要如下資訊:
模組使用MODULE AUTHOR 宏指
模組描述:使用MODULE
模組別名:使用MODULE ALIAS 宏指定。
開源協議:使用MODULE_LICENSE 宏指定。
除了這些資訊外, Linux驅動模組自己還會包含一些資訊。我們可以用下面的命令查看word_count.ko的資訊。
#modinfo word_count.ko
4.註冊和登出裝置檔案:一般需要在初始化Linux驅動時建立裝置檔案,在卸載linux驅動時刪除裝置檔案。而且裝置檔案還需要一個結構體(miscdevice)來描述與其相關的資訊。
5.指定回呼函數:最常用的互動方式就是讀寫裝置檔案。通過file_operations.read 和file_operations. write 成員變數可以分別指定讀寫裝置檔案要調用的回呼函數指標。用word count read 和l word count write函數做一個讀寫裝置檔案資料的實驗。
6.實現統計單詞數的演算法:。本節實現的演算法將由空格、定位字元、回東符和分行符號分隔的字串算做一個單詞,該演算法同時考慮了有多個分隔字元(空格符、製表:符、斷行符號符和分行符號)的情況。
7.編譯、安裝、卸載Linux 驅動程式。
讀《Android深度探索(卷1)HAL與驅動開發》的一些思考06