資料介紹
基于Linux操作系統(tǒng)具有良好的開放性和較強的可移植性,在當(dāng)前嵌入式操作系
統(tǒng)中被廣泛采用;同時USB也具有極佳的通用性,是當(dāng)前最為流行的通用外設(shè)接口。本文詳細的介紹編寫嵌入式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)用程序屏蔽了硬件的細節(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è)接口。本文詳細的介紹編寫嵌入式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)用程序屏蔽了硬件的細節(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的圖像采集與藍牙傳輸 2181次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費
- 2AN158 GD32VW553 Wi-Fi開發(fā)指南
- 1.51MB | 2次下載 | 免費
- 3AN148 GD32VW553射頻硬件開發(fā)指南
- 2.07MB | 1次下載 | 免費
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 5AN153-用于電源系統(tǒng)管理的Linduino
- 1.38MB | 次下載 | 免費
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 7SM2018E 支持可控硅調(diào)光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
- 8AN-1308: 電流檢測放大器共模階躍響應(yīng)
- 545.42KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數(shù)發(fā)生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費
- 8感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論