資料介紹
基于Linux操作系統(tǒng)具有良好的開放性和較強的可移植性,在當(dāng)前嵌入式操作系
統(tǒng)中被廣泛采用;同時USB也具有極佳的通用性,是當(dāng)前最為流行的通用外設(shè)接口。本文詳細(xì)的介紹編寫嵌入式USB驅(qū)動程序的結(jié)構(gòu)和重點,最后談?wù)勔浦睻SB驅(qū)動程序到ARM平臺需要修改的地方。
關(guān)鍵詞:Linux;USB;USB驅(qū)動程序;嵌入式系統(tǒng)
Linux 內(nèi)核有三種類型的設(shè)備驅(qū)動程序:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。其中與文件系
統(tǒng)相關(guān)的兩種類型是字符設(shè)備和塊設(shè)備。字符設(shè)備指那些必須以串行順序依次進行訪問的設(shè)備,如觸摸屏、磁帶驅(qū)動器、鼠標(biāo)等。塊設(shè)備可以用任意順序進行訪問,以塊為單位進行操作,如硬盤、軟驅(qū)等。其中字符設(shè)備不經(jīng)過系統(tǒng)的快速緩沖,而塊設(shè)備經(jīng)過系統(tǒng)的快速緩沖。對于字符設(shè)備的驅(qū)動程序來說,將該初始化函數(shù)放在linux 源碼drivers/char/mem.c 中進行執(zhí)行;對于塊設(shè)備,放在/drivers/block/ll_rw_block.c 中執(zhí)行。
在嵌入式系統(tǒng)中,設(shè)備驅(qū)動程序的實現(xiàn)方法有兩種,一種是采用中斷(interrupt)的方
式,另一種是采用輪詢(pol1in)的方式。在中斷方式下,事件的發(fā)生是由中斷確定的,在中斷沒有出現(xiàn)時,驅(qū)動程序處于空閑狀態(tài),由外部設(shè)備主動提出申清,CPU 響應(yīng)申請后對外部設(shè)備進行處理;在查詢方式下,驅(qū)動程序必須創(chuàng)建一個任務(wù),以不停地查詢相關(guān)寄存器來確定事件的發(fā)生,由CPU 掌握對設(shè)備的訪問權(quán),外部設(shè)備則完全處于被動狀態(tài),這種方式會比較占用CPU 時間??紤]到驅(qū)動程序的執(zhí)行效率和系統(tǒng)的實時性要求,一般采用中斷觸發(fā)方式。
設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核和機器硬件之間的接口,為應(yīng)用程序屏蔽了硬件的細(xì)節(jié)。
應(yīng)用程序看待硬件設(shè)備只是一個設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對硬件設(shè)備進行操作。設(shè)備驅(qū)動程序是內(nèi)核的一部分。linux 操作系統(tǒng)提供了一種機制即內(nèi)核模塊來解決這個問題。根據(jù)需要,在重新編譯內(nèi)核的情況下,把模塊插入內(nèi)核或者從內(nèi)核卸載。linux設(shè)備驅(qū)動都在內(nèi)核空間實現(xiàn),實現(xiàn)方式有兩種:一種是將有關(guān)的設(shè)備驅(qū)動程序和數(shù)據(jù)結(jié)構(gòu)靜態(tài)地編譯進內(nèi)核映像(image)中;另一種是將設(shè)備驅(qū)動程序和數(shù)據(jù)結(jié)構(gòu)獨立編譯,使之成為可安裝的模塊(module)。一般情況下是采用第二種方法加載到內(nèi)核的。
統(tǒng)中被廣泛采用;同時USB也具有極佳的通用性,是當(dāng)前最為流行的通用外設(shè)接口。本文詳細(xì)的介紹編寫嵌入式USB驅(qū)動程序的結(jié)構(gòu)和重點,最后談?wù)勔浦睻SB驅(qū)動程序到ARM平臺需要修改的地方。
關(guān)鍵詞:Linux;USB;USB驅(qū)動程序;嵌入式系統(tǒng)
Linux 內(nèi)核有三種類型的設(shè)備驅(qū)動程序:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。其中與文件系
統(tǒng)相關(guān)的兩種類型是字符設(shè)備和塊設(shè)備。字符設(shè)備指那些必須以串行順序依次進行訪問的設(shè)備,如觸摸屏、磁帶驅(qū)動器、鼠標(biāo)等。塊設(shè)備可以用任意順序進行訪問,以塊為單位進行操作,如硬盤、軟驅(qū)等。其中字符設(shè)備不經(jīng)過系統(tǒng)的快速緩沖,而塊設(shè)備經(jīng)過系統(tǒng)的快速緩沖。對于字符設(shè)備的驅(qū)動程序來說,將該初始化函數(shù)放在linux 源碼drivers/char/mem.c 中進行執(zhí)行;對于塊設(shè)備,放在/drivers/block/ll_rw_block.c 中執(zhí)行。
在嵌入式系統(tǒng)中,設(shè)備驅(qū)動程序的實現(xiàn)方法有兩種,一種是采用中斷(interrupt)的方
式,另一種是采用輪詢(pol1in)的方式。在中斷方式下,事件的發(fā)生是由中斷確定的,在中斷沒有出現(xiàn)時,驅(qū)動程序處于空閑狀態(tài),由外部設(shè)備主動提出申清,CPU 響應(yīng)申請后對外部設(shè)備進行處理;在查詢方式下,驅(qū)動程序必須創(chuàng)建一個任務(wù),以不停地查詢相關(guān)寄存器來確定事件的發(fā)生,由CPU 掌握對設(shè)備的訪問權(quán),外部設(shè)備則完全處于被動狀態(tài),這種方式會比較占用CPU 時間??紤]到驅(qū)動程序的執(zhí)行效率和系統(tǒng)的實時性要求,一般采用中斷觸發(fā)方式。
設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核和機器硬件之間的接口,為應(yīng)用程序屏蔽了硬件的細(xì)節(jié)。
應(yīng)用程序看待硬件設(shè)備只是一個設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對硬件設(shè)備進行操作。設(shè)備驅(qū)動程序是內(nèi)核的一部分。linux 操作系統(tǒng)提供了一種機制即內(nèi)核模塊來解決這個問題。根據(jù)需要,在重新編譯內(nèi)核的情況下,把模塊插入內(nèi)核或者從內(nèi)核卸載。linux設(shè)備驅(qū)動都在內(nèi)核空間實現(xiàn),實現(xiàn)方式有兩種:一種是將有關(guān)的設(shè)備驅(qū)動程序和數(shù)據(jù)結(jié)構(gòu)靜態(tài)地編譯進內(nèi)核映像(image)中;另一種是將設(shè)備驅(qū)動程序和數(shù)據(jù)結(jié)構(gòu)獨立編譯,使之成為可安裝的模塊(module)。一般情況下是采用第二種方法加載到內(nèi)核的。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式linux報警,嵌入式Linux下LED報警燈驅(qū)動設(shè)計及編程.doc
- ARM11嵌入式系統(tǒng)Linux下液晶顯示的實現(xiàn)
- ARM11嵌入式系統(tǒng)Linux下LCD的驅(qū)動的設(shè)計
- 基于arm11的嵌入式linux中nrf24l01驅(qū)動的實現(xiàn)
- 嵌入式Linux系統(tǒng)的驅(qū)動原理和使用ARM Linux實現(xiàn)SPI驅(qū)動程序的說明 11次下載
- USB設(shè)備端驅(qū)動系統(tǒng)與嵌入式linux系統(tǒng)的實現(xiàn) 4次下載
- LCD原理與基于嵌入式的LCD驅(qū)動的設(shè)計與實現(xiàn) 8次下載
- 基于StrongARM嵌入式Linux系統(tǒng)下的USB通信實現(xiàn) 5次下載
- 基于嵌入式Linux的U盤驅(qū)動的分析與改進
- 嵌入式Linux字符設(shè)備驅(qū)動的設(shè)計與應(yīng)用
- 嵌入式Linux下PCSC驅(qū)動的設(shè)計與實現(xiàn)
- 嵌入式Linux字符設(shè)備驅(qū)動的設(shè)計與應(yīng)用
- 基于Linux的嵌入式LCD設(shè)計
- 嵌入式USB從設(shè)備驅(qū)動程序設(shè)計
- 嵌入式Linux的USB驅(qū)動添加及應(yīng)用
- 嵌入式Linux開發(fā)的三種方式 1018次閱讀
- 簡化SBC的嵌入式Linux軟件開發(fā) 1170次閱讀
- 基于嵌入式Linux內(nèi)核的ARM9運行實現(xiàn)方式介紹 1573次閱讀
- 基于Yocto Project的定制嵌入式Linux產(chǎn)品設(shè)計淺析 1w次閱讀
- 如何在嵌入式Linux中截屏 6108次閱讀
- 基于嵌入式linux系統(tǒng)下的串口編程具體設(shè)置詳解 7022次閱讀
- 基于嵌入式Linux系統(tǒng)下Mini GUI的移植方法與過程詳解 3702次閱讀
- 基于PXA255開發(fā)板外圍字符設(shè)備的嵌入式Linux字符設(shè)備驅(qū)動設(shè)計與應(yīng)用 1199次閱讀
- 基于嵌入式Linux下的I2C設(shè)備驅(qū)動的總體思路與框架設(shè)計 3771次閱讀
- 學(xué)習(xí)嵌入式linux系統(tǒng)開發(fā),文件類型一定要分清 895次閱讀
- 嵌入式C實現(xiàn)延時程序的不同變量的區(qū)別 幾種Linux嵌入式開發(fā)環(huán)境的簡單介紹 1673次閱讀
- 基于嵌入式Linux的無線視頻監(jiān)控系統(tǒng)設(shè)計 3150次閱讀
- 基于FPGA的嵌入式Linux操作系統(tǒng)解決方案 6309次閱讀
- 基于Linux的嵌入式實時操作系統(tǒng)的研究 2354次閱讀
- 基于ARM Linux的圖像采集與藍(lán)牙傳輸 2181次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 93次下載 | 1 積分
- 3S7-200PLC編程實例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關(guān)電源設(shè)計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風(fēng)扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論