0? 概述
嵌入式linux系統環境以其易于移植裁減、內核小、效率高、完整、原代碼開放及性能優異等特點,在嵌入式領域得到了非常廣泛的應用。Linux的USB設備端的源代碼中主要有USB device的海量存儲設備、串口設備、網絡設備等設備驅動程序及各種USB device控制器芯片的驅動程序。市場上USB設備控制器芯片種類繁多,大多數用戶需要針對特定應用來開發相關的USB設備控制器驅動程序,才能使設備正常工作在linux操作系統下。
1 USB設備端驅動系統
Linux Gadget子系統主要分為三層:第一層為芯片驅動層,負責將各種USB device控制器抽象為統一的函數接口,以供上層驅動程序調用;第二層主要是對操作函數的簡單封裝;第三層為設備驅動層,可根據系統的需求實現所對應的功能。圖1所示是Linux Gadget子系統的驅動層次。Linux Gadget子系統的設備驅動層主要根據各個類別的規范及協議實現各種設備的驅動,本設計需要使一個嵌入式設備擁有移動硬盤的功能,所以,可以根據海量存儲類的規范及協議來實現該功能。
1.1 UDC驅動的基本構架
圖2所示是UDC驅動的基本構架圖。在控制器驅動程序中,首先應注冊platform驅動,調用其probe函數搜索設備,并在probe函數內初始化usb_ep和usb_gadget等結構,然后注冊設備,并申請中斷,接著等待中斷進入中斷服務子程序,最后聲明和實現usb_gadget_register_driver注冊函數并輸出給上層驅動。在該過程中,聯系它們的紐帶是一些全局結構體變量。
1.2 Gadget API
Gadget API為Gadget系統定義了統一的數據結構和接口函數,它和主機端的USB Core地位類似,但功能僅限于提供編程接口,如用結構體usb_gadget_ops和usb_ep_ops對設備控制器驅動操作函數和端點操作函數進行重新封裝。比較特殊的是Gadget驅動程序注冊函數usb_gadget_register_driver,它們是由設備控制器(UDC)驅動直接提供的,用于將UDC綁定到gadget driver。這增加了Gadget Driver和UDC之間的依賴性。
在設備端,Gadget系統雖然類似主機驅動系統分了三層結構,但Gadget API只定義了一些數據結構、宏和功能函數,并對UDC驅動程序進行了簡單包裝,而沒有驅動管理等功能。
1.3設備應用驅動程序
設備端應用程序(Gadget Driver)用于控制USB設備功能的實現,使設備表現出“網絡連接”、“打印機”或“大容量存儲設備”等特性。本文以大容量移動存儲設備為例來實現移動硬盤的功能。
BULK ONLY傳輸指的是主機和大容量存儲設備之間的一種數據傳輸方式。
2設備端驅動調度
在嵌入式Linux操作系統中,Gadget driver和Gadget API可完成部分USB協議處理、BULK ONLY等傳輸協議以及指令的解析處理,用戶只需要在設備控制器驅動程序中完成部分USB協議處理和Gadget API的銜接工作。
圖3所示的流程圖給出了USB設備端驅動程序的基本調度思想。該方案的主要思路是被動的接受主機端的傳輸命令(任何類型的通信都由USB主機發起,USB設備間不能直接通信),然后通過中斷觸發的方式完成主機端的數據傳輸。當產生設備端中斷時,設備控制器驅動程序首先判斷中斷類型。當其為批量傳輸端點IN中斷時,驅動程序會將該EP下鏈接的REQ中的數據依次寫入USB2.0 OTG IP的設備控制器的內存區;當其為批量傳輸OUT中斷時,驅動程序會將設備控制器內存區的數據讀入REQ中的buffer中;當其為端點0的控制傳輸中斷時,驅動程序將讀取端點緩沖區的數據,并解析當前的設備請求。如果主機傳輸給設備的設備請求為USB REO SEDRESS(設置設備地址)、USB_REQ_GET_STATUS(獲取設備狀態)、USB_REQ_SET_FEATURE(設置設備特性),設備控制器驅動程序會自行響應請求。但是,如果是其它設備請求,如GET_DESCRIPTOR(獲取設備描述符)時,設備控制器驅動便會將該請求提交給Gadget Driver,然后由Gadget Driver排隊將該設備請求提交給端點,以等待下次控制端點中斷。
控制傳輸比較復雜,它需要完成建立階段、數據傳輸階段和狀態階段。整個控制端點中斷的處理可通過四個狀態實現,分別是:端點0空閑(EP0_IDLE)、 數據IN傳輸(EP0 IN DATA_PHASE)、數據OUT傳輸(EP0 OUT DATA_PHASE)和狀態階段(EPO_STATUS)。
EP0_IDLE狀態主要處理建立階段的setup令牌,并根據獲得的設備請求處理能夠處理的設備請求,同時把不能處理的設備請求(如獲取設備描述符,配置描述符等)提交給上層Gadget Driver;EP0_OUT_DATA_PHASE狀態主要處理數據階段的OUT傳輸;EP0_OUT_DATA_PHASE狀態主要處理數據階段的IN傳輸;EP0_STATUS狀態則主要完成控制傳輸過程中的狀態階段。
在圖3所示的流程圖中,EP0為控制傳輸端點,EP1、EP2、EP3為批量傳輸端點,它們主要包括端點傳輸類型、端點緩沖區大小等信息。REQ為Gadget Driver提交的端點請求,主要包含傳輸的數據長度和地址。
3 UDC的設計與實現
設備控制器驅動主要分為Gadget Driver接口模塊、Gadget API函數模塊、中斷處理模塊、數據結構定義、初始化模塊、硬件讀寫模塊等,各模塊可以單獨進行設計。
3.1? 數據結構定義
根據Gadget API提供的數據結構,可以定義自己的數據結構(如設備數據結構otg_udc,端點數據結構otg_udc_ep等)來描述該USB設備控制器。
定義完特定的設備控制器驅動的數據結構后,再進行相應的映射(static struct otg_ip_udcmemory),以便將具體的設備控制器、設備端點和Gadget的抽象數據結構聯系起來。
3.2 Gadget Driver接口模塊
UDC驅動提供有usb_gadget_driver_register模塊,該模塊可實usb_gadget_register_driver等綁定函數的功能,以綁定UDC和Gadget Driver。
3.3 Gadget API函數模塊
Linux USB gadget driver API定義了一個通用的gadget driver的接口,利用gadget driver可通過API與底層USB controller driver進行通信。該API屏蔽了底層硬件的不同,故可使gadget driver只注重功能的實現,而盡量與硬件無關。其代碼如下:
該模塊主要實現Gadget API定義的函數功能,如結構體usb_ep_ops和usb_gadget_ops中的函數,以及usb_gadget_register_driver注冊函數等。這些函數可供Gadget Driver調用。
3.4? 中斷處理模塊
由于設備是被動的接受主機的控制,設備的所有行為都是基于設備中斷的觸發,因此,函數主要處理Reset中斷、Resume中斷、Suspend中斷、EP0中斷以及其他端口中斷。
3.5? 初始化模塊
初始化主要是打開中斷、打開并設置端點、設置最大總線轉向時間(此時問即包間最大等待時間),還要設置最大緩沖區長度等。
3.6? 硬件讀寫模塊
和主機控制器驅動程序類似,設備控制器的讀寫方式分為PIO讀寫和DMA讀寫兩種模式,讀寫內容也分為寄存器讀寫和端點緩沖區讀寫。在讀寫過程中,所有讀寫地址都必須是雙字節對齊模式。
4? 驅動測試結果
本文研究的HCD已經應用于實際的工程中,驅動測試的硬件環境如圖4所示。
本系統的硬件平臺是Realview EB,這是一個高度集成的開發板,其母板上的硬件資源包括:一個FPGA (Xilinx Virtex-II XC2V6000)、靜態和動態內存、集成外圍設備和兩個用于Core Tiles連接的tile連接器。設計時可通過增加一個額外的Core Tile(ARM926EJS CORE)來創建一個微處理系統。Logic Tile(Xilinx XC2V6000)中包含有一塊具有主機控制器功能的芯片otg_ip,otg_ip可通過片內總線AHB掛載在母板EB上。在該開發板上運行Linux系統時,可通過交叉編譯調試環境將開發報與一臺PC機相連,這樣,調試信息就可以通過串口打印在該主機的終端上。otg_ip可通過ULPI接口連接PHY芯片,并與USB設備相連。
設備控制器驅動模塊otg_ip_udc.ko和g_filestorage.ko成功加載后,再將其作為移動優盤插入電腦主機的USB接口,驅動即可成功識別。圖5所示是內核打印的信息結果。
5? 結束語
USB通用串行總線具有傳輸速率高、功耗低、可熱插拔和發展快速等優點,而Linus操作系統則具有易于移植和裁減、內核小、效率高、原代碼開放等特點,本文通過將其結合而給出的Linux環境下的USB設備驅動方法,可以快速地實現大容量的存儲功能,實驗表明:該系統的數據讀寫速度可以達到681 kB/s,而且效果良好。
Linux2.6環境下USB設備的驅動實現
- USB設備(16249)
- 驅動實現(6460)
相關推薦
Linux2.6在內存管理有哪些問題需要注意?
Linux2.6引入了基于對象的反向映射機制,這種方法為物理頁面設置一個用于反向映射的鏈表,但是鏈表上的節點并不是引用了該物理頁面的所有頁表項,而是相應的虛擬內存區域(vm_area_struct結構)。
2020-04-09 07:08:17
Linux2.4與Linux2.6內核調度器的比較研究
)算法,它在高負載的情況下執行得極其出色,并且當有很多處理器時也可以很好地擴展,不但大大改善了對SMP的支持,同時也兼顧了單CPU或者雙CPU系統的要求。3 Linux2.6調度器的改進目標為了改善
2008-06-17 12:04:46
Linux2.4和Linux2.6的調度器對比分析,Linux2.6對調度器的改進有哪些方面?
Linux2.4和Linux2.6的調度器對比分析,Linux2.6對調度器的改進有哪些方面?Linux2.4調度器性能低下的原因是什么
2021-04-27 06:42:00
Linux環境下USB的原理、驅動和配置
運行的程序,實際上是一種目標對象文件,沒有鏈接,不能獨立運行,但是可以裝載到系統中作為內核的一部分運行,從而可以動態擴充內核的功能。模塊最主要的用處就是用來實現設備驅動程序。Linux下對于一個硬件的驅動
2013-11-08 16:30:39
Linux設備驅動的硬件操作方法分享
嚴重的陷阱,如果硬件出現了故障,REGB 的第 0 位總是變不成 1 的話,在系統不支持搶占調度的情況下,就“死機”了。從 Linux 2.4 移植設備驅動到 Linux 2.6從 Linux 2.4
2022-05-09 10:17:16
Linux學習
`#Linux培訓#華清遠見Linux學習資料《Linux3.4內核USB驅動的移植》,USB接口是現在計算機系統中最通用的一種接口,通過移植USB驅動,了解Linux3.4內核與Linux2.6
2013-07-10 10:40:22
linux平臺設備驅動
區)在設備驅動程序中經常會見到和platform相關的字段,分布在驅動程序的多個角落,這也是2.6內核中比較重要的一種機制,把它原理弄懂,對以后分析驅動程序很有幫助:在linux2.6設備模型中,關心
2017-09-01 14:40:51
Atmel studio 7環境 使用pickit4下載程序,如何切換為AVR模式?
Atmel studio 7環境使用pickit4下載程序,使用UPDI模式,提示當前處于PIC模式,需要切換到AVR模式,請問如何切換為AVR模式?
2020-11-22 15:50:38
MX6Q Qt5.6+Linux4.1.15環境運行圖形界面程序報錯是為什么?
MX6Q Qt5.6+Linux4.1.15環境運行圖形界面程序,報錯:QXcbConnection: Could not connect to display是不是哪個環境變量沒有設置?
2022-01-11 06:05:33
RK3288環境安裝Linux QT平臺搭建相關資料推薦
一、RK3288環境安裝Linux QT平臺搭建記錄1、sudo apt-get update2、sudo apt-get install git-core gnupg flex bison
2022-08-11 17:22:30
Samsung S5PV210 Cortex-A8---OK210軟件手冊(linux2.6)-V1.8
,最高支持32GB支持JPEG 硬件編解碼,最大支持8192×8192 分辨率...............OK210軟件手冊(linux2.6)-V1.8-下載地址:更新日期2015.05.11下載鏈接鏈接:http://pan.baidu.com/s/1kTBtwyz
2015-05-19 11:04:57
Simulink開發STM32環境配置注意事項
Simulink開發STM32環境配置注意事項,自動生成代碼無法正常實現功能分析最近做PIL,記錄一些過程,備忘1.環境配置的注意事項需要的軟件包括MATLAB ,我
2021-08-17 06:07:08
TM4C123G在CCS5.5環境下JLINK仿真器可以在CCS5.5環境下使用嗎?
。現在想把它轉化為自己的產品,想請教幾個問題:1、在CCS5.5環境下可以用SEED-XDS560PLUS仿真器對TM4C123G ARM處理器進行仿真和程序下載嗎?2、如果不能使用XDS560仿真器
2018-08-14 06:51:31
[分享資料]linux設備驅動開發詳解_宋寶華
Linux2.6 版本內核為藍本,詳細介紹自旋鎖、信號量、完成量、中斷頂/底半部、定時器、內存和I/O映射以及異步通知、阻塞I/O、非阻塞I/O等Linux設備驅動理論;字符設備、塊設備、TTY設備、I2C設備
2015-09-11 23:36:44
為什么foundation 3.1環境里找不到啟動testbench.vhd的程式?
在foundation 3.1環境里怎么找不到啟動testbench.vhd的程式?
2019-09-18 05:55:16
關于protel *** 2004 在win7 64位環境下運行的問題
剛下載的protel *** 2004 在win7 64位環境下不能運行,安裝完成以后就提示“出現災難性故障”,求大師解決,怎樣才能運行啊。
2013-03-12 08:37:11
在stm32f107環境下可實現哪些功能
在stm32f107環境下實現如下功能: - 以太網接口用作串口使用(區別于C/S模型);- 以太網接口接收全部的網內數據; - 對網內數據包過濾,僅接收本機相關數據包及廣播包; 工具
2021-08-05 06:38:09
基于Linux的USB設備驅動方法有什么優點?
設備、串口設備、網絡設備等設備驅動程序及各種USB device控制器芯片的驅動程序。市場上USB設備控制器芯片種類繁多,大多數用戶需要針對特定應用來開發相關的USB設備控制器驅動程序,才能使設備正常工作在linux操作系統下。
2019-11-07 08:31:16
如何在F103環境下進行UART通信實驗和RS232通信實驗
RS485線在F103環境下進行UART通信實驗和RS232通信實驗在F407環境下進行RS485實驗(1.我的103板子沒有485口,2.正好看下開發板環境不同的差異)UART通信實驗(通用異步收發器)UART串口通信原理:什么是串行通信?什么是異步通信?什么是全雙工?什么是串行.
2022-02-17 07:17:45
如何學習linux設備驅動
就可驗證,當你按照手里的經典著作,如:Alessandro的《linux設備驅動程序》,編寫驅動時,發現并不能夠成功的在你的linux平臺上編譯通過、或不能正常執行,原因就在于你用的內核和書里的不一致
2011-07-06 13:12:29
如何對在QuartusII9.0環境下的多路寫信號處理電路進行仿真
如何對在QuartusII9.0環境下的多路寫信號處理電路進行仿真?怎樣去設計一種FIFO讀信號地址譯碼電路?
2021-09-26 06:53:31
如何編譯linux驅動模塊
在嵌入式系統應用中,嵌入式linux是非常重要的一個方面,而linux驅動編譯又是嵌入式linux中至關重要的一個環節。下面,本文將詳細講解如何編譯linux驅動模塊。首先,我們要了解一下模塊
2021-11-04 08:45:37
嵌入式Linux下USB藍牙設備驅動
嵌入式Linux下USB藍牙設備驅動.pdf第 18卷 第 2期 電子設計工程 2010年 2月V01.18No.2ElectronicDesignEngineeringFeb.2010...
2021-11-05 07:46:01
嵌入式Linux下USB藍牙設備驅動
的應用大打折扣。在分析藍牙協議棧的體系結構、Linux藍牙協議BlueZ的組織結構的基礎上,詳細闡述藍牙USB傳輸層,給出藍牙設備驅動實現的關鍵數據結構和函數,并在MP2530硬件平臺下實現Linux下USB藍牙
2010-04-24 09:30:17
嵌入式Linux下的USB設備驅動
,而且所有的配置過程都由系統自動完成,無須用戶干預。1 Linux下的USB設備驅動在Linux內核的不斷升級過程中,驅動程序的結構相對穩定。由于USB設備也是外圍設備的一種,因此,它的驅動
2018-12-07 10:29:50
嵌入式Linux學習步驟
Linux2.6內核與2.4內核中字符設備驅動的不同Linux 塊設備驅動程序塊設備驅動程序工作原理 典型的塊設備驅動程序分析 塊設備的讀寫請求隊列了解Linux塊設備驅動程序結構 能夠編寫簡單的塊設備
2018-07-03 00:56:23
嵌入式Linux學習步驟
Linux內核移植Linux2.6內核到 ARM9開發板6、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux應用軟件開發流程 Linux系統的文件和設備 與文件相關的系統調用 配置
2015-03-24 10:41:29
嵌入式Linux學習步驟
Linux內核移植Linux2.6內核到 ARM9開發板 6、 嵌入式 Linux 下串口通信 串行I/O的基本概念 嵌入式Linux應用軟件開發流程 Linux系統的文件和設備 與文件相關的系統
2011-05-04 15:01:53
嵌入式Linux開發學習如何入門、如何深入?
了解Linux字符設備驅動程序結構能夠編寫字符設備驅動程序編寫Skull驅動編寫鍵盤驅動編寫I/O驅動分析一個看門狗驅動程序對比Linux2.6內核與2.4內核中字符設備驅動的不同Linux 塊設備驅動程序塊設備
2016-10-14 14:37:33
嵌入式Linux開發學習如何入門、如何深入?
程序結構能夠編寫字符設備驅動程序編寫Skull驅動編寫鍵盤驅動編寫I/O驅動分析一個看門狗驅動程序對比Linux2.6內核與2.4內核中字符設備驅動的不同Linux 塊設備驅動程序塊設備驅動程序工作原理典型
2014-07-08 11:03:55
嵌入式Linux開發學習推薦書籍
詳解》 (宋寶華編) 人民郵電出版社定價:89 linux2.6字符驅動講的比較好 llinux設備驅動程序(第三版) (驅動的一些理論講的比較好,但是比較深) 《構建嵌入式LINUX系統》 (美)雅
2018-07-05 02:30:35
嵌入式linux學習步驟
驅動 編寫I/O驅動分析一個看門狗驅動程序 對比Linux2.6內核與2.4內核中字符設備驅動的不同Linux 塊設備驅動程序塊設備驅動程序工作原理 典型的塊設備驅動程序分析 塊設備的讀寫請求隊列
2016-09-12 14:23:18
嵌入式linux學習步驟
驅動程序編寫Skull驅動 編寫鍵盤驅動 編寫I/O驅動 分析一個看門狗驅動程序 對比Linux2.6內核與2.4內核中字符設備驅動的不同Linux 塊設備驅動程序塊設備驅動程序工作原理 典型的塊設備
2017-10-25 10:12:39
嵌入式linux學習步驟
驅動程序編寫Skull驅動 編寫鍵盤驅動 編寫I/O驅動 分析一個看門狗驅動程序 對比Linux2.6內核與2.4內核中字符設備驅動的不同Linux 塊設備驅動程序塊設備驅動程序工作原理 典型的塊設備
2021-09-08 11:51:06
怎樣去解決sw4stm32環境下遇到重定向完成后printf沒有輸出的問題呢
在sw4stm32環境下如何添加printf支持呢?怎樣去解決sw4stm32環境下遇到重定向完成后printf沒有輸出的問題呢?
2021-12-02 07:13:11
新手必看--嵌入式Linux學習步驟
驅動程序編寫Skull驅動 編寫鍵盤驅動 編寫I/O驅動 分析一個看門狗驅動程序 對比Linux2.6內核與2.4內核中字符設備驅動的不同Linux 塊設備驅動程序塊設備驅動程序工作原理 典型的塊設備
2016-03-25 14:53:55
現在分享一個大四做的一個基于Cortex A8和linux2.6的廣告機
現在分享一個大四做的一個基于Cortex A8和linux2.6的廣告機,利用多線程編程,實現圖片循環播放,同時播放音樂,此項目涉及jpg和mp3格式解碼,所以必須在PC端linux系統安裝這兩個解碼庫,解碼庫自己找,這里只提供原碼,如果需要的話可以找我要
2015-10-21 10:51:14
編譯linux2.6時make uImage出現如下錯誤
首次編譯linux2.6時 make uImage 出現如下錯誤:sound/soc/s3c24xx/s3c2410-uda1341.c:26:32: asm/arch/regs-gpio.h
2019-05-30 01:38:30
請問microblaze可以跑linux2.6.X的內核嗎?
我想試著在支持MMU的microblaze7.0上跑個linux2.6內核,應該如何配置交叉編譯環境?我看到網上有人提到microblaze-gcc,我裝過arm-linux的交叉編譯環境,那個
2012-08-23 10:38:50
請問能在CCS3.3環境下使用HVRESLLCKIT開發套件嗎?
1.請問能在CCS3.3環境下使用這個套件嗎?2controlsuit中怎么沒有PeripheralHeaderIncludes.h這個頭文件,難道我的controlsuit版本不夠新?
2020-07-14 11:31:33
嵌入式Linux2.6在S3C2410上的移植技術探析
移植操作系統是開發嵌入式系統的前提和基礎,通過將Linux 2.6 內核移植到S3C2410目標板上,提出了嵌入式Linux 移植的方法與具體實現過程。編譯生成的內核在嵌入式系統中運行穩
2009-08-31 10:03:49
15
![](https://skin.elecfans.com/images/2021-soft/load.png)
Linux環境下USB的原理、驅動和配置
本文對 Linux 環境下USB 的原理、驅動和配置進行詳細介紹。隨著生活水平的提高,人們對 USB 設備的使用也越來越多,鑒于Linux 在硬件配置上尚不能全部即插即用,因此關于Linux 如
2010-01-16 16:57:53
33
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式Linux的USB驅動設計
本文主要介紹了 Linux 平臺的USB設備驅動開發的一般步驟方法和技巧,通過詳細介紹USB的相關概念和Linux中USB設備驅動程序的數據結構,框架和步驟,并通過設計和實現一個驅動的實例,
2011-06-08 17:15:48
49
![](https://skin.elecfans.com/images/2021-soft/load.png)
編譯Linux2.6內核并添加一個系統調用
本文以實例來詳細描述了從準備一直到使用新內核的Linux2.6 內核編譯過程,然后介紹了添加系統調用的實現步驟,最后給實驗結果。
2011-12-01 15:54:55
46
![](https://skin.elecfans.com/images/2021-soft/load.png)
Linux設備驅動模型摘抄
Linux2.6 內核提供了新的設備模型,目的是為了對計算機上的所有設備進行統一地表示和操作,包括設備本身和設備之間的連接關系。這個模型是在 分析了 PCI 和 USB 的總線驅動過程中得到
2012-03-19 15:15:52
39
![](https://skin.elecfans.com/images/2021-soft/load.png)
USB設備端驅動系統與嵌入式linux系統的實現
嵌入式 linux 系統環境以其易于移植裁減、內核小、效率高、完整、原代碼開放及性能優異等特點,在嵌入式領域得到了非常廣泛的應用。Linux 的 USB 設備端的源代碼中主要有 USB device
2017-10-31 16:15:48
4
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于FPGA嵌入式系統的設備驅動開發
基于FPGA嵌入式系統,在PowerPC 架構的Linux2.6 操作系統環境下,對通用輸入輸出接口(GPIO)控制器的驅動,采用平臺設備機制進行中斷控制管理。通過該管理機制,將GPIO設備本身
2017-11-18 11:32:57
2134
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/EC/wKgZomUMQUeAWoLGAABUQ2ptZd8269.png)
s3c2410移植MPlayer到linux2.6
s3c2410移植MPlayer到linux2.6 我使用的linux內核為2.6.14.1 MPlayer版本為MPlayer-1.0pre7try2.bz2 目前雖然已經添加了mad的mp3
2018-09-21 14:36:01
190
![](https://skin.elecfans.com/images/2021-soft/eye.png)
Linux下的硬件驅動—USB設備(上)
和使用他們,也越來越成為困擾我們的一大問題。本文分兩部分著力從Linux系統下設備驅動的架構,去闡述怎樣去使用和配置以及怎樣編制USB設備驅動。對于一般用戶,可以使我們明晰Linux設備驅動開發專業論壇
2019-04-02 14:35:56
231
![](https://skin.elecfans.com/images/2021-soft/eye.png)
Linux下的硬件驅動—USB設備(下)
RESERVED FOR FUTURE USE INCLUDE FILES--> 前言在上篇《 Linux下的硬件驅動--USB設備(上)(驅動配制部分)》中,我們知道了在Linux下如何去使用一些最常
2019-04-02 14:37:35
307
![](https://skin.elecfans.com/images/2021-soft/eye.png)
Linux2.6內核驅動移植參考
作者:晏渭川 隨著Linux2.6的發布,由于2.6內核做了教的改動,各個設備的驅動程序在不同程度上要 進行改寫。為了方便各位Linux愛好者我把自己整理的這分文檔share出來
2019-04-02 14:38:39
143
![](https://skin.elecfans.com/images/2021-soft/eye.png)
Linux2.6 內核的 Initrd 機制解析
中的"某個文件",完成加載驅動模塊等任務,第二階段才會執行真正的根文件系統中的 /sbin/init 進程。這里提到的"某個文件",Linux2.6 內核會同以前版本內核的不同,所以這里暫時使用了"某個
2019-04-02 14:39:19
452
![](https://skin.elecfans.com/images/2021-soft/eye.png)
Linux設備驅動開發詳解PDF電子書免費下載
這是一本介紹Linux設備驅動開發理論、框架與實例的書,Linux設備驅動開發詳解基于LDD6410開發板,以Linux2.6 版本內核為藍本,詳細介紹自旋鎖、信號量、完成量、中斷頂/底半部、定時器
2019-04-28 08:00:00
13
![](https://skin.elecfans.com/images/2021-soft/load.png)
Linux設備驅動開發詳解PDF電子書免費下載的
這是一本介紹Linux設備驅動開發理論、框架與實例的書,《Linux設備驅動開發詳解(第2版)》基于LDD6410開發板,以Linux2.6 版本內核為藍本,詳細介紹自旋鎖、信號量、完成量、中斷
2019-07-24 08:00:00
29
![](https://skin.elecfans.com/images/2021-soft/load.png)
米爾科技Linux設備驅動研究淺談
《Linux設備驅動開發詳解(第2版)》是一本介紹linux設備驅動開發理論、框架與實例的書,《Linux設備驅動開發詳解(第2版)》基于ldd6410開發板,以linux 2.6版本內核為藍本
2019-11-25 09:32:41
1748
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/AA/65/o4YBAF2peOqAb1tEAAAvMkTR5ew578.jpg)
如何使用Linux內核實現USB驅動程序框架
Linux內核提供了完整的USB驅動程序框架。USB總線采用樹形結構,在一條總線上只能有唯一的主機設備。 Linux內核從主機和設備兩個角度觀察USB總線結構。本節介紹 Linux內核USB驅動
2020-11-06 17:59:17
19
![](https://skin.elecfans.com/images/2021-soft/load.png)
完整的linux系統包括哪些部分?
Linux的驅動程序可以說是五花八門,linux2.4和linux2.6的編寫有相當大的區別,就是同為linux2.6但是不同版本間的驅動程序也有區別,因此編寫linux的驅動程序變都不是那么容易的事情,對于最新版本的驅動程序的編寫甚至還沒有足夠的參考資料。
2022-12-02 11:51:42
362
![](https://skin.elecfans.com/images/2021-soft/eye.png)
評論