標籤:
學習 Linux 驅動編程一定要瞭解 Linux 驅動只與 Linux 核心有關,與使用者使用的 Linux 系統 ( Ubuntu Linux、 Fedora Linux、 Android 等)無關。也就是說,不管是哪個 Linux 系統,只要使用了同樣的Linux核心,驅動就可以通用。唯一可以判斷 Linux 核心是否相同的方法就是 Linux核心版本號碼。只有組成核心版本號碼的五部分完全相同,才能說明兩個 Linux 系統的核心是相同的。從這一點可以看出,學習 Android 驅動開發,實際上就是 學習 Linux 驅動開發,只是 Android 增加了一個 HAL,這是Android 特有的。一般的 Android 驅動 都會有對應的 HAL,不過 HAL 也不是必需的,通過 NDK 也可以直接存取 Linux 驅動。但 Google 建議最好為 Linux 驅動編寫對應的 HAL 程式庫。
總結一下學習Linux 驅動要做些什麼:
1.準備一個自己熟悉的Linux 作業系統,用於開發與測試Linux 驅動,建議使用Ubuntu Linux14.04 及以上版本。
2.準備一塊開發板(建議採用基於ARM11的開發板)。
3.學習GNUC。
4.學習相關的硬體知識。
5.不斷地實踐。
因為 Android原生的代碼支援的裝置並不多,因此,要想在自己的裝置〈包括手機、 MP4γ智- 能電視、平板電腦、車載系統等〉上完美運行 Android,就需要另外開發?些程式,使得 Android 可以識別相應裝置中的硬體(顯示器、藍芽、-音頻ζWi-Fi等〉。這個為特定裝置定製Android的過 程被稱為“移植飛那麼,在移植的過程中開發得最多的就是支援各種硬體裝置的 Linux 驅動程式- (Android’是基於Lim肌肉核的)。因此,講移植就必須要講驅動開發。Andrpid移植可分為兩部分:.應用-移植和系統移植。。要想Android在不同硬體平台上正常運行, 只支援CPU架構還不行,必須要讓Android可以識別平台上的各種硬體(如音效卡、顯示器、藍芽 裝置等〉。
第一章