讀《Android深度探索(卷1)HAL與驅動開發》的一些思考06

來源:互聯網
上載者:User

標籤:

統計單詞數的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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.