標籤:
第六章
本章是android底層開發的第一個章節,本章是第一個linux驅動程式,統計單詞個數。
本章作為實戰第一章,首先要做的就是瞭解linux驅動到底是個什麼東西,首先瞭解linux驅動的工作方式,linux系統將每一個驅動都映射成一個檔案,儲存在/dev中,再使用c語言函數ioctl向驅動的裝置檔案發送列印命令。編寫linux驅動程式,需要接受被寫入的資料,並將它們通過pc的並口、usb等連接埠發送給印表機, 需要linux響應應用程式傳過來的資料。
然後編寫linux驅動程式的步驟,步驟如下:
1建立linux驅動骨架。
Module_init 和module_exit宏制定
2註冊和登出裝置檔案
Misc_register mics_deregister
3.指定驅動相關資訊
Module_author module_license module_alias module_description
4.制定回呼函數
5.編寫商務邏輯
6.編寫makefile檔案
7.編譯linux驅動程式
8.安裝和卸載linux驅動
然後,我們就可以真正開始我們的程式了,利用裝置檔案作為介質與應用程式進行互動。應用程式通過向裝置檔案傳遞一個由空格分隔的字串,然後從裝置檔案讀出來的是該字串包含的單詞數。在編寫前首先建立存放驅動程式的目錄,然後建立驅動原始碼檔案並編寫一個makefile檔案,之後進行編寫骨架等一系列操作,通過書上內容可以完美編譯。
最後測試驅動,可以使用的方法有:
1 Ubuntu linux進行測試
2 在android模擬器上通過原生c程式測試
3 使用android NDK測試
4 使用java代碼直接操作裝置檔案測試
5使用S3C6410開發板測試
6 將驅動編譯進linux核心進行測試
最後一個小節講述了使用Eclipse開發與測試linux驅動程式,利於深入瞭解核心技術。
開發步驟如下:
1.建立c工程
2建立c原始碼檔案連結
3設定include路徑
4編譯linux驅動
測試步驟如下
1匯入test_word_count.c檔案
2設定include路徑
3建立target
4build工程
5運行測試程式
雖然驅動的功能不複雜,但是足以讓我瞭解驅動的完成開發過程。本章雖然僅僅是一個簡單的執行個體,但是包含內容很多,
Android深度探索HAL與驅動開發 第六章