Android深度探索(卷1)HAL與驅動開發 第六章 第一個Linux驅動程序:統計單詞個數

Android深度探索(卷1)HAL與驅動開發算法

第六章 第一個Linux驅動程序:統計單詞個數數組

    統計單詞個數的功能是封裝在Linux驅動中的。函數

    Linux驅動的工做和訪問方式是Linux亮點之一,同時受到了業界大防範好評。Linux系統將每個驅動都映射成一個文件。這些文件稱爲設備文件或者驅動文件,都保存在 /dev 目錄中。這種設計理念使得與Linux驅動進行交互就像與普通文件進行交互同樣容易。固然,也比訪問Linux API 更容易。因爲大多數Linux驅動都有與其對應的設備文件,所以與Linux驅動交換數據就變成了與文件交換數據。測試

      編寫Linux驅動程序的步驟設計

一、創建Linux驅動骨架(裝載和卸載Linux驅動)ip

Linux內核在使用驅動時首先須要進行裝載驅動。在裝載過程當中須要進行一些初始化操做。當系統退出時須要進行卸載Linux驅動,在卸載過程當中須要釋放由Linux驅動佔用的資源。在Linux驅動程序中須要提供兩個函數來分別處理驅動初始化和退出的工做。這兩個函數分別用module和moddule_exit宏指定。資源

二、註冊和註銷設備文件開發

三、指定與驅動相關的信息字符串

四、指定回調函數get

五、編寫業務邏輯

六、編寫Makefile文件

    Linux內核源代碼的編譯規則是經過Makefile文件定義的。所以編寫一個新的Linux驅動程序必須有一個Makefile文件

七、編譯Linux驅動程序

八、安裝和卸載Linux驅動

    第一個Linux驅動:統計單詞個數

一、#mkdir創建目錄文件夾

二、編寫Makefile文件

Obj-m : = vord count.o

Word_count-y : = process.o data.o

編寫Linux驅動程序的骨架(初始化和退出驅動)

指定與驅動相關的信息

指定回調函數

    實現統計單詞數的算法

    編寫word_count驅動程序:

一、get_word_count 函數將mem數組中的第一個爲「\0」的字符做爲字符串的結尾符,所以在word_count_write 函數中將mem[count]的值設成「\0」,不然get_word_count 函數沒法知道要統計單詞書的字符串到哪裏結束。

二、單詞數使用int類型變量存儲,在word_count_write函數中統計出單詞數(word_count變量的值),在word_count_read 函數中將word_count 整型變量值分解成4個字符存儲在buf中,所以,在應用程序中須要將這四個字節組合成Int類型的值

編譯、安裝、卸載Linux驅動程序

      使用多種方式測試Linux驅動

使用Exlipse開發和測試Linux驅動程序

統計單詞數的word_count驅動是本書實現的第一個完整的Linux驅動。

相關文章
相關標籤/搜索