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