經(jīng)典linux驅(qū)動(dòng)基礎(chǔ)開發(fā)免費(fèi)教程

經(jīng)典linux驅(qū)動(dòng)基礎(chǔ)開發(fā)免費(fèi)教程

ID:46253261

大小:244.86 KB

頁(yè)數(shù):20頁(yè)

時(shí)間:2019-11-22

經(jīng)典linux驅(qū)動(dòng)基礎(chǔ)開發(fā)免費(fèi)教程_第1頁(yè)
經(jīng)典linux驅(qū)動(dòng)基礎(chǔ)開發(fā)免費(fèi)教程_第2頁(yè)
經(jīng)典linux驅(qū)動(dòng)基礎(chǔ)開發(fā)免費(fèi)教程_第3頁(yè)
經(jīng)典linux驅(qū)動(dòng)基礎(chǔ)開發(fā)免費(fèi)教程_第4頁(yè)
經(jīng)典linux驅(qū)動(dòng)基礎(chǔ)開發(fā)免費(fèi)教程_第5頁(yè)
資源描述:

《經(jīng)典linux驅(qū)動(dòng)基礎(chǔ)開發(fā)免費(fèi)教程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、G凌陽(yáng)教育v/ww.sunplusedu.comnr以下是凌陽(yáng)教育的嵌入式linux培訓(xùn)資深講師-徐老師提供的免費(fèi)的linux驅(qū)動(dòng)基礎(chǔ)開發(fā)教程(linux驅(qū)動(dòng)基礎(chǔ)開發(fā)0-linux驅(qū)動(dòng)基礎(chǔ)開發(fā)3)理論加實(shí)例詳解,重點(diǎn)紅字標(biāo)注。linux初學(xué)者必看!一:linux驅(qū)動(dòng)基礎(chǔ)開發(fā)0--linux設(shè)備驅(qū)動(dòng)概述目前,Linux軟件工程師大致可分為兩個(gè)層次:(1)Linux應(yīng)用軟件工程師(ApplicationSoftwareEngineer):主要利用C庫(kù)函數(shù)和LinuxAPI進(jìn)行應(yīng)用軟件的編寫;從事這方面的開發(fā)工作,主要需要學(xué)習(xí):符合linuxposix標(biāo)準(zhǔn)的API函數(shù)及系統(tǒng)調(diào)用,linux的多任務(wù)

2、編程技巧:多進(jìn)程、多線程、進(jìn)程間通信、多任務(wù)之間的同步互斥等,嵌入式數(shù)據(jù)庫(kù)的學(xué)習(xí),UI編程:QT、miniGUI等。(2)Linux固件工程師(FirmwareEngineer):主要進(jìn)行Bootloader^Linux的移植及Linux設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)工作。一般而言,固件工程師的要求耍高于應(yīng)用軟件工程師的層次,而其中的Linux設(shè)備驅(qū)動(dòng)編程乂是Linux程序設(shè)計(jì)屮比較復(fù)雜的部分,究其原因,主要包括如下兒個(gè)方面:1)設(shè)備驅(qū)動(dòng)屬于Linux內(nèi)核的部分,編寫Linux設(shè)備驅(qū)動(dòng)需要有一定的Linux操作系統(tǒng)內(nèi)核基礎(chǔ);需要了解部分linux內(nèi)核的工作機(jī)制與系統(tǒng)組成。2)編寫Linux設(shè)備驅(qū)動(dòng)需要對(duì)

3、硬件的原理有相當(dāng)?shù)牧私?,大多?shù)情況下我們是針對(duì)一個(gè)特定的嵌入式硬件平臺(tái)編寫驅(qū)動(dòng)的,例如:針對(duì)特定的主機(jī)平臺(tái):可能是三星的2410、2440,也可能是atmel的,或者E思卡爾的等等。3)Linux設(shè)備驅(qū)動(dòng)屮廣泛涉及到多進(jìn)程并發(fā)的同步、互斥等控制,容易出現(xiàn)bug;因?yàn)閘inux木身是一個(gè)多任務(wù)的工作環(huán)境,不可避免的會(huì)出現(xiàn)在同一時(shí)刻對(duì)同一設(shè)備發(fā)生并發(fā)操作。4)由于屬于內(nèi)核的一部分,Linux設(shè)備驅(qū)動(dòng)的調(diào)試也相當(dāng)復(fù)雜。linux設(shè)備驅(qū)動(dòng)沒有一個(gè)很好的IDE環(huán)境進(jìn)行單步、變星查看等調(diào)試輔助工具;linux驅(qū)動(dòng)跟linux內(nèi)核工作在同一層次,一旦發(fā)生問題,很容易造成內(nèi)核的整體崩潰。木系列文章我們將一步

4、步、深入淺出的介紹linux設(shè)備驅(qū)動(dòng)編程屮設(shè)計(jì)的一些問題及學(xué)習(xí)方法,希望對(duì)大家學(xué)習(xí)linux設(shè)備驅(qū)動(dòng)有所幫助。在任何一個(gè)計(jì)算機(jī)系統(tǒng)中,人至服務(wù)器、PC機(jī)、小至手機(jī)、mp3/mp4播放器,無論是復(fù)雜的人型服務(wù)器系統(tǒng)還是一個(gè)簡(jiǎn)單的流水燈單片機(jī)系統(tǒng),都離不開驅(qū)動(dòng)程序的身影,沒有硬件的軟件是空中樓閣,沒有軟件的硬件只是一堆廢鐵,H更件是底層的基礎(chǔ),是所有軟件得以運(yùn)行的平臺(tái),代碼最終會(huì)落實(shí)到硬件上的邏輯組合。但是硬件與軟件Z間存在一個(gè)駁論:為了快速、優(yōu)質(zhì)的完成軟件功能設(shè)計(jì),應(yīng)用程序工程師不想也不愿關(guān)心硬件,而碩件工程師也很難冇功夫去處理軟件開發(fā)中的一些應(yīng)用。例如軟件工程師在調(diào)川printf的時(shí)候,不許

5、也不川關(guān)心信息到底是通過什么樣的處理,泄過哪些通路顯示在該顯示的?凌陽(yáng)教育vzww.sunplusedu.com地方,碩件工程師在寫完了一個(gè)4*4鍵盤駛動(dòng)后,無需也不必管應(yīng)川程序在獲得鍵值后做哪些處理及操作。也就是說軟件工程師需要看到一個(gè)沒有硬件的純軟件世界,硬件必須透明的提供給他,誰(shuí)來實(shí)現(xiàn)這一任務(wù)?答案是驅(qū)動(dòng)程序,驅(qū)動(dòng)程序從字血解釋就是:“驅(qū)使破件設(shè)備行動(dòng)”。驅(qū)動(dòng)程序直接與硬件打交道,按照硬件設(shè)備的具體形式,驅(qū)動(dòng)設(shè)備的寄存器,完成設(shè)備的輪詢、中斷處理、DMA通信,最終訃通信設(shè)備町以收發(fā)數(shù)據(jù),讓顯示設(shè)備能夠顯示文字和畫面,讓音頻設(shè)備可以完成聲音的存儲(chǔ)和播放??梢?,設(shè)備驅(qū)動(dòng)程序充當(dāng)了硬件和軟件

6、之間的樞紐,因此驅(qū)動(dòng)程序的表現(xiàn)形式可能就是一些標(biāo)準(zhǔn)的、爭(zhēng)先協(xié)定好的API函數(shù),驅(qū)動(dòng)工程師只需要去完成相應(yīng)函數(shù)的填充,應(yīng)用工程師只需要調(diào)用相應(yīng)的接口完成和應(yīng)的功能。無論有沒有操作系統(tǒng),驅(qū)動(dòng)程序都有其存在價(jià)值,只是在裸機(jī)悄況下,工作環(huán)境比較簡(jiǎn)單、完成的工作較單一,駁動(dòng)程序完成的功能也就比較簡(jiǎn)單,同時(shí)接口只耍在小范囤內(nèi)符合統(tǒng)一的標(biāo)準(zhǔn)即可。但是在有操作系統(tǒng)的情況卜,此問題就會(huì)被放大:硬件來自不同的公司、千變力化,全世界每天都會(huì)有大量的新芯片被生產(chǎn),大量的電路板被設(shè)計(jì)出來,如果沒有一個(gè)很好的統(tǒng)一標(biāo)準(zhǔn)去規(guī)范這一程序,操作系統(tǒng)就會(huì)被設(shè)計(jì)的非常冗余,效率會(huì)非常低。所以無論任何操作系統(tǒng)都會(huì)制定一套標(biāo)準(zhǔn)的架構(gòu)去

7、管理這些驅(qū)動(dòng)程序:linux作為嵌入式操作系統(tǒng)的典范,其驅(qū)動(dòng)架構(gòu)具冇很窩的規(guī)范性與聚合性,不但把不同的換件設(shè)備分門別類、綜合管理,并冃針對(duì)不同哽件的共性進(jìn)行了統(tǒng)一抽彖,將其硬件相關(guān)性降到最低,大大簡(jiǎn)化了驅(qū)動(dòng)程序的編寫,形成了具有其特色的駟動(dòng)組織架構(gòu)。下圖反映了應(yīng)用程序、linux內(nèi)核、驅(qū)動(dòng)程序、硬件的關(guān)系。系統(tǒng)調(diào)川接IIHX仁仁仁進(jìn)程管理內(nèi)存管理文件系統(tǒng)設(shè)備控制網(wǎng)絡(luò)并發(fā)、多任務(wù)虛擬內(nèi)存文件和n錄:VFSTry

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。