在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于DWC2的USB驅動開發-UVC的處理單元詳解

嵌入式USB開發 ? 來源:嵌入式USB開發 ? 作者:嵌入式USB開發 ? 2023-07-13 09:42 ? 次閱讀

本文轉自公眾號,歡迎關注
基于DWC2的USB驅動開發-UVC的處理單元詳解 (qq.com)

一.前言

本篇來詳細分析下UVC的處理單元相關的內容,同樣的我們理論結合實踐來進行。

二.處理單元簡介

處理單元(PU)控制通過它傳輸的視頻的圖像屬性。有一個單一的輸入和輸出引腳,注意是單一的,也就是一個處理單元只能處理一個輸入只有一個輸出。

支持以下功能:

用戶控制:

  • Brightness亮度·
  • Hue色調·
  • Saturation飽和度·
  • Sharpness清晰度·
  • Gamma伽馬·
  • Digital Multiplier (Zoom) 數字乘法器(縮放)

自動控制

  • White Balance Temperature 白平衡溫度控制
  • White Balance Component 白平衡成分控制
  • Backlight Compensation 背光補償
  • Contrast 對比度

其他

  • Gain 增益
  • Power Line Frequency 電力線頻率
  • Analog Video Standard 模擬視頻標準
  • Analog Video Lock Status 模擬視頻鎖定狀態

對上述功能的支持都是可選的,但是,如果設備支持白平衡功能,則應實現白平衡溫度控制或白平衡成分控制,但不能同時實現。

用戶控制表示由用戶偏好設置的屬性,不受設備的自動控制的影響。

自動控制支持是否使能的設置(具有打開/關閉狀態)。如果使能則設備自動調整,對相關屬性的讀請求則反映自動設置的值。

如果打開自動模式,嘗試以手動方式設置將導致STALL,錯誤代碼為bRequestErrorCode=“錯誤狀態”。當退出自動模式時,相關控制屬性應保持在轉換前有效的值。

后面可以看到基本所有的屬性都對應有一個自動控制,使能自動控制就不能再手動配置了。

處理單元的符號如下圖所示。

注意這里的但輸入單輸出
圖片

三.拓撲結構

以下從描述符來看處理單元的拓撲結構,如下圖是一個實際的UVC產品的描述符,只截取了和UVC相關的IAD下的描述符。
圖片

可以看到處理單元的ID是bUnitID=2,其源頭是bSourceID=1即前面的bTerminaIID=1的視頻控制輸入終端;而其后面是bUnitID=3的視頻控制擴展單元,該單元的baSourceID[1]=2表示其源頭是本處理單元。

其拓撲如下

圖片

四.處理單元描述符

處理單元的描述符應該位于UVC的控制接口描述符VideoControl Interface Descriptors的Class-specific VC Interface Header Descriptor的后面

如下所示紅色線所指示

圖片

本實例處理單元描述符對應的具體內容如下

圖片

處理單元的描述詳細內容見規格書P69

3.7.2.5 Processing Unit Descriptor

偏移區域大小說明
0bLength1數字值,13本描述符的字節數
1bDescriptorType1常數CS_INTERFACE=0x24描述符類型
2bDescriptorSubtype1常數VC_PROCESSING_UNIT =0x05描述符子類
3bUnitID1數字單元ID
4bSourceID1常數該單元前面所連接的單元或終端的ID。
5wMaxMultiplier2數字數字放大
7bControlSize1數字,3后面 bmControls域 的字節數
8bmControls3Bitmap支持的處理類型
11iProcessing1Index描述本處理單元的字符串描述索引,填0則沒有字符串描述符。
12bmVideoStandards1Bitmap支持的標準

l其中bDescriptorType的定義參考規格書的P171 A.5. Video Class-Specific VC Interface Descriptor Subtypes
圖片

l其中bDescriptorSubtype的定義參考規格書的P172 A.4. Video Class-Specific Descriptor Types
圖片

l其中bUnitID

處理單元由處理單元描述符(PUD)的bUnitID字段的值唯一標識。 非零常數 ,用于唯一標識本功能接口中的單元。類相關請求時Index的高位即該值。

這里為什么要是非零常數呢?為什么從0開始編號呢,因為在請求中wIndex的高8位為0用于區分是接口請求,其他非0值為對應了終端和單元ID,所以不能從0開始編號了。

本功能對應的接口內單該值和其他單元和終端的ID不能重復。

lbSourceID

該單元前面所連接的單元或終端的ID。

處理單元肯定是要處理一個東西的,即需要輸入的,處理什么呢,肯定是處理攝像頭的輸入,所以前面一般就是Input Terminal,該值就是前面的Input Terminal的ID。

如下所示,這里bSourceID=1即前面連接的是bTerminalID=1的輸入終端

圖片

l其中wMaxMultiplier

如果支持數字放大Digital Multiplier控制,則該值除以100表示放大倍數,比如設置值450則表示1-4.5X,即4.5倍數字放大,如果不支持則設置為0.

l其中bmControls,表示支持的處理類型

某一位置位則對應的處理支持,小端模式

D0: Brightness

D1: Contrast

D2: Hue

D3: Saturation

D4: Sharpness

D5: Gamma

D6: White Balance Temperature

D7: White Balance Component

D8: Backlight Compensation

D9: Gain

D10: Power Line Frequency

D11: Hue, Auto

D12: White Balance Temperature, Auto

D13: White Balance Component, Auto

D14: Digital Multiplier

D15: Digital Multiplier Limit

D16: Analog Video Standard

D17: Analog Video Lock Status

D18: Contrast, Auto

D19 – D23: Reserved. Set to zero

l其中bmVideoStandards表示支持的標準

0表示忽略該字段.

某位置1則表示支持該標準

D0: None

D1: NTSC – 525/60

D2: PAL – 625/50

D3: SECAM – 625/50

D4: NTSC – 625/50

D5: PAL – 525/60

D6-D7: Reserved. Set to zero.

以下是對應一個實例,注意其bmControls域只有兩個字節,且沒有bmVideoStandards,所以只有11個字節。

-------- Video Control Processing Unit Descriptor -----

bLength : 0x0B (11 bytes)

bDescriptorType : 0x24 (Video Control Interface)

bDescriptorSubtype : 0x05 (Processing Unit)

bUnitID : 0x02 (2)

bSourceID : 0x01 (1)

wMaxMultiplier : 0x0000

bControlSize : 0x02 (2 bytes)

bmControls : 0x7B, 0x07

D0 : 1 yes - Brightness

D1 : 1 yes - Contrast

D2 : 0 no - Hue

D3 : 1 yes - Saturation

D4 : 1 yes - Sharpness

D5 : 1 yes - Gamma

D6 : 1 yes - White Balance Temperature

D7 : 0 no - White Balance Component

D8 : 1 yes - Backlight Compensation

D9 : 1 yes - Gain

D10 : 1 yes - Power Line Frequency

D11 : 0 no - Hue, Auto

D12 : 0 no - White Balance Temperature, Auto

D13 : 0 no - White Balance Component, Auto

D14 : 0 no - Digital Multiplier

D15 : 0 no - Digital Multiplier Limit

iProcessing : 0x00 (No String Descriptor)

Data (HexDump) : 0B 24 05 02 01 00 00 02 7B 07 00 .$......{..

五. 處理單元相關的請求

參考規格書P109 4.2.2.3 Processing Unit Control Requests

處理單元控制請求用于讀或者設置處理單元的屬性,所以包括SET_xx 和GET_xx。

一共支持如下19種屬性的請求

圖片

對應的CS編碼見P175 A.9.5. Processing Unit Control Selectors

圖片

以下做了一個總結,所以值都是無符號值。

類型CS大小B支持的操作[]表示可選最少支持操作說明
背光補償控制PU_BACKLIGHT_COMPENSATION_CONTROL2SET_CURGET_CURGET_MINGET_MAXGET_RESGET_INFOGET_DEFGET_DEF設置0說明不支持背光補償,可以支持范圍值或者僅僅是開關。小端模式,無符號16位值。
亮度控制PU_BRIGHTNESS_CONTROL2SET_CUR,GET_CUR GET_MIN GET_MAXGET_RESGET_INFOGET_DEFGET_DEF該值是相對值配置的是增量,RES值必須是1小端模式,有符號16位值。
對比度控制PU_CONTRAST_CONTROL2SET_CUR GET_CUR GET_MIN GET_MAXGET_RESGET_INFOGET_DEFGET_DEF該值是相對值配置的是增量,RES值必須是1小端模式,有符號16位值。
對比度自動控制PU_CONTRAST_AUTO_CONTROL1SET_CURGET_CUR GET_INFOGET_DEFGET_DEF值為1表示使能自動控制,此時嘗試設置相關對比度控制將導致STALL和bRequestErrorCode=“錯誤狀態”的錯誤代碼。
增益控制PU_GAIN_CONTROL2SET_CURGET_CURGET_MIN GET_MAXGET_RESGET_INFOGET_DEFGET_DEF該值是相對值配置的是增量,RES值必須是1小端模式,有符號16位值。
電力線頻率控制PU_POWER_LINE_FREQUENCY_CONTROL1SET_CURGET_CURGET_INFOGET_DEFGET_DEF值對應如下0: Disabled1: 50 Hz2: 60 Hz3: Auto
色度控制PU_HUE_CONTROL2GET_CUR GET_MIN GET_MAXGET_RESGET_INFOGET_DEF[SET_CUR]GET_DEF默認值必須是0,設置值是實際值乘以100,實際值范圍是(-180 到+180degrees). 則設置值發呢欸是-18000 ~18000 有符號16位,小端
色度自動控制PU_HUE_AUTO_CONTROL1SET_CUR,GET_CUR,GET_INFO GET_DEFGET_DEF值為1表示使能自動控制,此時嘗試設置相關色度控制將導致STALL和bRequestErrorCode=“錯誤狀態”的錯誤代碼
飽和度控制PU_SATURATION_CONTROL2SET_CURGET_CURGET_MINGET_MAXGET_RESGET_INFOGET_DEFGET_DEF0表示灰度值為相對值,RES必須為1
清晰度設置PU_SHARPNESS_CONTROL2SET_CURGET_CURGET_MINGET_MAXGET_RESGET_INFOGET_DEFGET_DEF相對值,MIN意味著“無清晰度處理”RES必須為1
伽馬設置PU_GAMMA_CONTROL2SET_CURGET_CURGET_MINGET_MAXGET_RES,GET_INFOGET_DEFGET_DEF設置值是實際值乘以100,設置值范圍1500 ,實際值范圍1.05.0默認一般是100 (gamma = 1)或220 (gamma = 2.2).
白平衡溫度控制PU_WHITE_BALANCE_TEMPERATURE_CONTROL2GET_CURGET_MINGET_MAXGET_RESGET_INFOGET_DEFGET_DEF這用于將白平衡設置指定為以開爾文度為單位的色溫。這是作為白平衡組件控制的替代方案提供的。網絡攝像頭和雙模攝像頭的最小范圍應為2800(白熾)至6500(日光)。
白平衡溫度自動控制PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL1SET_CURGET_CURGET_INFOGET_DEFGET_DEF值為1表示使能自動控制,此時嘗試設置相關白平衡溫度控制將導致STALL和bRequestErrorCode=“錯誤狀態”的錯誤代碼
白平衡成分控制PU_WHITE_BALANCE_COMPONENT_CONTROL4GET_CURGET_MIN GET_MAXGET_RESGET_INFOGET_DEF[SET_CUR]GET_DEF前面2字節是藍色成分設置后面2字節是紅色成分設置
白平衡成分自動控制PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL1SET_CURGET_CURGET_INFOGET_DEFGET_DEF值為1表示使能自動控制,此時嘗試設置相關白平衡成分控制將導致STALL和bRequestErrorCode=“錯誤狀態”的錯誤代碼
數字乘法器控制PU_DIGITAL_MULTIPLIER_CONTROL2SET_CURGET_CURGET_MINGET_MAX GET_RESGET_INFOGET_DEF已棄用,下一版將刪除值為 Z’cur這用于指定應用于光學圖像的數字縮放量。這是乘法器m的可能值范圍內的位置,允許通過設備實現來描述乘法器分辨率。RES 必須為1如果支持數字乘法器限制控制,則最小值和最大值應與數字乘法器控制的最小值和最高值相匹配。數字乘法器限制控制允許設備或主機為Z¢cur 值建立臨時上限,從而動態減小數字乘法器控制的范圍。如果使用數字乘法器限制將限制降低到當前Z¢cur ,Z¢cur 值將進行調整以匹配新的限制,數字乘法器控制應發送控制更改事件以通知主機調整。
數字乘法器限制控制PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL2SET_CURGET_CURGET_MINGET_MAX GET_RESGET_INFOGET_DEFRES 為1上述Z’cur的上限
模擬視頻標準控制PU_ANALOG_VIDEO_STANDARD_CONTROL1GET_CURGET_INFO0: None1: NTSC – 525/602: PAL – 625/503: SECAM – 625/504: NTSC – 625/505: PAL – 525/606-255: Reserved. Do not use.
模擬視頻鎖定狀態控制PU_ANALOG_LOCK_STATUS_CONTROL1GET_CURGET_INFO這用于報告視頻解碼器是否已經實現模擬輸入信號的水平鎖定。如果解碼器被鎖定,則假定正在生成有效的視頻流。此控制僅支持模擬視頻解碼器功能。

六. 處理單元請求驅動代碼

處理單元類相關請求的解析,需要注意兩個關鍵參數,一個是處理單元所在的接口號,上面實例接口是0,處理單元本身的ID,上面實例是2。

1.通過接口號和單元ID即可定位到是哪一個ID,接口號和單元號都是從wIndex字段解析,低位是接口號高位是單元ID號

2.然后再通過wValue確定對應的是什么操作,比如是亮度控制還是增益控制等。

即A.9.5. Processing Unit Control Selectors的CS

3.然后再通過bRequest確定是做什么類型的操作比如是獲取當前值GET_CUR還是設置當前值SET_CUR

見規格書P173A.8. Video Class-Specific Request Codes

圖片

參考規格書4.2.2 Unit and Terminal Control Requests,終端和單元的請求的layout

請求分為SET和GET兩大類

bmRequestTypebRequestwValuewIndexwLengthData
00100001SET_CURCS(高字節)單元或終端ID(高位)+接口(低位)數據長度
10100001GET_CURGET_MINGET_MAXGET_RESGET_INFOGET_DEF
00100001SET_CUR_ALL0單元或終端ID
10100001GET_CUR_ALLGET_MIN_ALLGET_MAX_ALLGET_RES_ALLGET_DEF_ALL

下面對解析過程進行詳細分析

bmRequest指定是什么操作,其中MIN,MAX和RES不能SET因為其是設備實現決定的,不能修改。

wValue字段在高位字節中對應CS,即表示對什么屬性進行操作,低字節為0.設備收到不支持的CS則需要STALL

wIndex高8位為0則表示是接口請求,不是0則表示單元和終端的ID,第8位表示對應的接口。所以這里終端和單元的ID不能為0,因為要和接口區分。

注意*(MAX-MIN)/RES* 和*(CURMIN)/RES *都需要是整數。如果SET_CUR操作中提供了無效的CUR值,設備應STALL,并用0x04“超出范圍”更新請求錯誤代碼。

收到setup后檢查如果是類相關請求,即bmRequestType的bit6:6為1則進入類相關處理接口

usb_function_request

圖片

圖片

然后再看如果bmRequestType的bit4:0為1,則對應接口相關處理

圖片

圖片

然后調用注冊的類回調,usb_uvc_class_set

再根據wIndex的高8位如果是0則對應的接口請求uvc_class_itf_req,

否則是終端單元相關請求uvc_class_ut_req

圖片

進入uvc_class_ut_req后

再根據wIndex的低8位確認接口,高8位定位終端和單元,然后根據wValue低8位確認CS即對應操作什么屬性,然后根據bRequest確定是什么操作,比如GET_CUR

圖片

比如如下的一個實例的解析

a1表示類相關接口請求

86表示GET_INFO

0002 高8位02表示PU_BRIGHTNESS_CONTROL 處理單元的CS

0002 高8位表示單元ID2,低8位表示接口0,如下圖接口0的ID2的單元就是處理單元

0100表示數據長度,GET_INFO即數據只有1個字節

圖片

圖片

后面的0x82 0x83 0x84 0x87也是類似

分別是GET_IN GET_MAX GET_RES GET_DEF

一般主機請求顯示GET_INFO看你支持啥,然后再進行后續操作。

驅動的優化

上述層層switch解析的方式,比較好理解,但是代碼冗余太大,且這部分代碼應該是屬于類實現層,不應該暴漏給用戶,而且實際所有的端點和處理單元都是類似的,我們可以根據bRequest等參數進行查表跳轉到對應的處理函數,用戶只需要注冊表格和回調即可,借用反射的設計范式。

GET_MIN GET_MAX GET_RES GET_CUR等只需要提供對應的存儲區域的地址,可以建議一個二維表格,分別是哪個端點對應的哪個CS有哪些值操作。這個后面再單獨一篇介紹。

七. 總結

以上詳細介紹了處理單元,包括描述符和其拓撲結構,請求等。可以先了解其拓撲結構,在描述符中如何描述這有利于從整體把握,然后了解其請求的過程。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • usb
    usb
    +關注

    關注

    60

    文章

    7945

    瀏覽量

    264639
  • 驅動開發
    +關注

    關注

    0

    文章

    130

    瀏覽量

    12077
  • 處理單元
    +關注

    關注

    0

    文章

    9

    瀏覽量

    6921
  • uvc
    uvc
    +關注

    關注

    1

    文章

    127

    瀏覽量

    14531
  • DWC2
    +關注

    關注

    0

    文章

    35

    瀏覽量

    131
收藏 人收藏

    評論

    相關推薦

    基于DWC2USB驅動開發-0x01開篇介紹與新思DWC2 USB2.0控制器簡介

    本文轉自公眾號,歡迎關注 基于DWC2USB驅動開發-0x01開篇介紹與新思DWC2 USB2
    的頭像 發表于 05-08 18:10 ?4611次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-0x01開篇介紹與新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0控制器簡介

    基于DWC2USB驅動開發-0x02 DWC2 USB2.0 IP功能特征介紹

    DWC2即新思(Synopsys )的DesignWare? Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器IP,被大量使用。從linux的內核源碼驅動中就帶
    的頭像 發表于 05-09 10:09 ?9420次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-0x02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP功能特征介紹

    基于DWC2USB驅動開發-IAD描述符詳解

    本文轉自公眾號,歡迎關注 基于DWC2USB驅動開發-IAD描述符詳解 (qq.com) 一.? 前言 IAD描述符用于一個設備功能關聯多
    的頭像 發表于 06-27 08:45 ?14.7w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-IAD描述符<b class='flag-5'>詳解</b>

    基于DWC2USB驅動開發-USB復位詳解

    本文轉自公眾號歡迎關注 基于DWC2USB驅動開發-USB復位詳解 (qq.com) 一.前言
    的頭像 發表于 07-07 11:18 ?6.6w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-<b class='flag-5'>USB</b>復位<b class='flag-5'>詳解</b>

    基于DWC2USB驅動開發-USB連接詳解

    本文轉自公眾號,歡迎關注 基于DWC2USB驅動開發-USB連接詳解 (qq.com) 一.前
    的頭像 發表于 07-07 08:46 ?3710次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-<b class='flag-5'>USB</b>連接<b class='flag-5'>詳解</b>

    基于DWC2USB驅動開發-高速設備枚舉為全速設備問題案例分析

    本文轉自公眾號,歡迎關注 基于DWC2USB驅動開發-高速設備枚舉為全速設備問題案例分析 (qq.com) 一.前言 ? 本文分享一個高速設備被枚舉為全速的問題。 ? ? 高速設備速
    的頭像 發表于 07-10 17:12 ?1421次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-高速設備枚舉為全速設備問題案例分析

    基于DWC2USB驅動開發-UVC的相機終端詳解

    本篇來詳細分析下UVC的相機終端相關的內容,同樣的我們理論結合實踐來進行。
    的頭像 發表于 07-13 09:46 ?2259次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-<b class='flag-5'>UVC</b>的相機終端<b class='flag-5'>詳解</b>

    基于DWC2USB驅動開發-UVC單元和終端類請求驅動代碼優化

    前面介紹了UVC處理單元和相機終端,可以看到各單元和終端的請求形式都是一樣的, 只是支持的CS和操作類型不一樣,數據的大小不一樣。目前的驅動
    的頭像 發表于 07-14 09:44 ?1145次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-<b class='flag-5'>UVC</b>的<b class='flag-5'>單元</b>和終端類請求<b class='flag-5'>驅動</b>代碼優化

    基于DWC2USB驅動開發-設備類驅動框架

    本文轉自公眾號,歡迎關注 基于DWC2USB驅動開發-設備類驅動框架 (qq.com) 一.前言 從軟件頂層,從數據流的角度來看
    的頭像 發表于 07-16 15:56 ?1321次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-設備類<b class='flag-5'>驅動</b>框架

    基于DWC2USB驅動開發-發送相關的寄存器DMA寄存器詳解

    本文轉自公眾號,歡迎關注 基于DWC2USB驅動開發-發送相關的寄存器DMA寄存器詳解 (qq.com) 前言 如下寄存器DIEPxxx,
    的頭像 發表于 07-16 16:42 ?1658次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-發送相關的寄存器DMA寄存器<b class='flag-5'>詳解</b>

    基于DWC2USB驅動開發-USB詳解

    不管什么通訊協議,比如UART,SPI,USB等等,不管是并口還是串口,不管是同步還是異步,我們從抽象的角度去看,其本質都是一樣的。都是先定義物理信號,物理信號可能是差分,單端,電流驅動電壓驅動等等
    的頭像 發表于 07-23 17:11 ?2599次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-<b class='flag-5'>USB</b>包<b class='flag-5'>詳解</b>

    基于DWC2USB驅動開發-控制傳輸中斷相關寄存器

    本篇講解Scatter/Gather DMA模式下控制傳輸相關的寄存器。控制傳輸是USB驅動的核心部分,控制傳輸調通了驅動就完成了一大半,而驅動的核心又是中斷的
    的頭像 發表于 07-24 00:07 ?2602次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-控制傳輸中斷相關寄存器

    基于DWC2USB驅動開發-數據不能發送問題分析案例

    本文轉自公眾號歡迎關注 基于DWC2USB驅動開發-數據不能發送問題分析案例 (qq.com) ? 一.前言 ? ? ? ?對于驅動
    的頭像 發表于 08-08 09:43 ?2314次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-數據不能發送問題分析案例

    如何對基于hal庫的DWC2 USB IP進行調試呢

    背景之前適配 DWC2 USB IP 的時候,主要是基于 st 的 hal 庫來走的,當時我就對他們的 hal 庫代碼不滿,只是無奈,迫于時間就沒重構,果不其然,usb bug 一堆,隨意舉例,這還
    發表于 06-14 15:23

    基于DWC2USB驅動開發-抽絲剝繭再論切換到狀態階段標志DOEPINTn.StsPhseRcvd

    本文轉自公眾號系列文章,歡迎關注 基于DWC2USB驅動開發-USB詳解 (qq.com)
    的頭像 發表于 07-24 18:04 ?1597次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-抽絲剝繭再論切換到狀態階段標志DOEPINTn.StsPhseRcvd
    主站蜘蛛池模板: 女人扒开腿让男人桶到爽| 午夜肉伦伦影院在线观看| 视频三区| 四虎影院永久| 国产va免费精品高清在线| 亚洲影视久久| 黄色大片视频在线观看| 四虎影裤| 亚洲精品美女久久久| 91大神亚洲影视在线| 1区2区3区4区| 三级理论手机在线观看视频| 久久影院朴妮唛| 亚洲黄色小说网站| 欧美骚| 在线人成精品免费视频| 久久精品亚洲精品国产欧美| 亚洲精品在线视频| 亚洲日本一区二区三区| 欧美色a电影精品aaaa| 永久免费在线视频| 4438x亚洲最大| 伊人99| 久九色| 欧美一级视频在线高清观看 | 88影视在线观看污污| 三级高清| 日日干干夜夜| 亚洲一区二区三区播放在线 | 日韩免费一级毛片| freesexvideo性欧美医生护士| 久久精彩免费视频| 亚洲人色大成年网站在线观看| 六月天丁香婷婷| 大又大又粗又爽女人毛片| 国产日本久久久久久久久婷婷| 青草视频在线观看国产| 午夜免费视频| 亚洲综合色色图| 黄色美女网站免费看| 久久草在线免费|