天天看點

《嵌入式裝置驅動開發精解》——第1章 關于本教程

本節書摘來異步社群《嵌入式裝置驅動開發精解》一書中的第1章,作者:孫智博,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

嵌入式裝置驅動開發精解

本書主要是針對從事嵌入式軟體開發人員編寫的,而嵌入式開發主要有兩個方向,一個是從事嵌入式裝置上應用程式的開發;另一個是驅動程式的開發,本書的方向更加側重于驅動程式的開發。當然,本書對于從事應用程式的開發人員也是不錯的參考,通過它可以很好地了解一個嵌入式裝置是如何協調各種硬體一起工作的,對更好地進行應用層的開發是很有意義的。在一個具體的嵌入式産品中,上層軟體主要是指具體的應用類程式,如可以在某一特定的硬體平台上開發一個遊戲、開發一台照相機、開發一台錄像機、開發一款e-mail收發程式等,這些具體的應用都非常直覺地展現給了使用者。而驅動程式的開發主要是針對硬體層面的裝置進行軟體開發,具體而言就是,為某一具體的硬體編寫驅動程式,讓這些硬體外設可以在特定的硬體平台上正确、穩定地工作,如使用手機上的照相機、lcd顯示屏、鍵盤以及mp3、mp4多媒體功能,要使這些裝置工作,就需要先給照相機(camera sensor)、lcd、多媒體等這些硬體編寫驅動程式,讓它們工作起來,然後結合上層的相關應用程式才組成了一個完整的應用程式。

《嵌入式裝置驅動開發精解》——第1章 關于本教程

本教程的潛在讀者對象是誰?本教程主要是針對想從事嵌入式裝置的驅動開發人員的。而具體到什麼是驅動開發,簡單意義上就是給某個裝置編寫驅動程式,并使之融合到整個系統中來。希望讀完本書能讓您對于嵌入式開發有一個全新的認識。

下面我們以一部手機為例來看一下驅動開發的工作内容是什麼。我們知道一部手機包括很多的元器件,如螢幕(lcd)、按鍵、觸摸屏、耳機、收音機、照相機、錄像機、錄音機、t卡、麥克風(microphone)等。這些都是可以直覺看到和觸摸到的,而在手機的内部還有arm cpu、memory(記憶體系統)、flash(nand flash 或者nor flash存儲系統),電源管理單元,處理射頻、音頻的dsp、usb、序列槽等。所有這些元件依靠印刷電路闆(pcb)連接配接起來,然後通過一款巨大的軟體工程把這些裝置組織并管理起來,最後就變成了使用的手機了。是以說,軟體是靈魂,硬體是軀體,兩者缺一不可。

裝置驅動開發的工作就是為這些裝置編寫程式,讓這些裝置準确地工作,并融入到手機系統中來,例如lcd,就要為不同廠商的lcd編寫适合某個手機開發平台的驅動程式,這樣不同的lcd才能工作在不同的平台上,其他裝置類似,但是驅動的工作并不局限于此。對于整個系統架構了解最深的也是驅動開發人員,隻有對整個系統有透徹的、完整的了解才能開發出一個健全、健壯的系統。

本教程主要内容包括手機驅動開發設計中用到的常用外設的驅動程式的開發,包括如何寫這些驅動程式,如何去調試這些裝置,出了問題如何進行跟蹤定位。我們知道驅動程式的調試不僅僅是軟體方面的,同時也會涉及硬體方面的内容,這就要求我們具有一定的硬體知識,最少也能讀懂硬體原理圖,能夠根據原理圖編寫程式,能夠拿起萬用表、示波器這些常用硬體信号電性能測量裝置進行硬體的調試。往往一個裝置的成功運作都是建立在反複的測試和測量的基礎上完成的,特别是裝置間聯調的時候,例如,手機系統要外加一個藍牙、一個wifi、一個cmmb數字電視等。這個時候就需要我們和供應商的fae(field application engineer現場支援工程師)進行聯調,這種聯調工作是對我們嵌入式知識體系的一個綜合考量,而往往這個時候闆子還沒有做好,隻能通過飛線進行調試,是以調試環境惡劣,那麼如何開始進行調試呢?這個疑問我們會在後面針對每一類裝置進行詳細講解。

繼續閱讀