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