驅動程序開發是嵌入式Linux項目中工作量大的一部分內容,開發出高質量的驅動程序是項目成功的關鍵。Linux設備驅動的學習是一項浩繁的工程,包含如下的重點、難點。
1 編寫Linux設備驅動要求工程師有非常好的硬件基礎,懂得SRAM、Flash、SDRAM、磁盤的讀寫方式,UART、I2C、USB等設
備的接口以及輪詢、中斷、DMA的原理,PCI總線的工作方式以及CPU的內存管理單元(MMU)等。
2、編寫Linux設備驅動要求工程師有非常好的C語言基礎,能靈活地運用C語言的結構體、指針、函數指針及內存動態申請和
釋放等。
3、編寫Linux設備驅動要求工程師有一定的Linux內核基礎,雖然并不要求工程師對內核各個部分有深入的研究,但至少要明
白驅動與內核的接口。尤其是對于塊設備、網絡設備、Flash設備、串口設備等復雜設備,內核定義的驅動體系架構本身就非
常復雜。
4、編寫Linux設備驅動要求工程師有非常好的多任務并發控制和同步的基礎,因為在驅動中會大量使用自旋鎖、互斥、信號
量、等待隊列等并發與同步機制。
上述經驗值的獲取并非朝夕之事,因此要求我們有足夠的學習恒心和毅力。動手實踐永遠是學習任何軟件開發的好方法,學習Linux設備驅動也不例外。此外,閱讀經典書籍和參與Linux社區的討論也是非常好的學習方法。Linux內核源代碼中包含了一個Documentation目錄,其中包含了一批內核設計的文檔,全部是文本文件。
學習Linux設備驅動的一個注意事項是要避免管中窺豹、只見樹木不見森林,因為各類Linux設備驅動都從屬于一個Linux設備驅動的架構,單純而片面地學習幾個函數、幾個數據結構是不可能理清驅動中各組成部分之間的關系的。因此,Linux驅動的分析方法是點面結合,將對函數和數據結構的理解放在整體架構的背景之中。
華清遠見課程推薦:嵌入式Linux驅動開發培訓班(FSLD3002)采用理論教學與實驗相結合的方式,系統地介紹Linux下設備驅動程序開發過程。通過本課程的學習,學員可以掌握Linux下字符設備、塊設備、網絡設備、framebuffer設備、sd卡等驅動程序、usb驅動的開發,同時掌握嵌入式Linux的系統開發和分析方法。
歡迎光臨 電子工程網 (http://m.qingdxww.cn/) | Powered by Discuz! X3.4 |