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

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

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

3天內不再提示

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

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

本文轉自公眾號,歡迎關注

基于DWC2的USB驅動開發-發送相關的寄存器DMA寄存器詳解 (qq.com)

前言

如下寄存器DIEPxxx,對應IN端點,和發送數據相關,這一篇先介紹和DMA相關的兩個寄存器,其他的后續再講,

并且通過觀察其寄存器的實際值的變化來加深理解。

了解這些值的含義以及何時如何變化,可以在有問題時幫助進行調試,知道當前出于何種狀態。

以下實例是以Scatter/Gather DMA模式IN端點1進行操作

寄存器的地址偏移分別是

0x900+i*0x20

0x908+i*0x20

0x910+i*0x20

0x914+i*0x20

0x918+i*0x20

0x91C+i*0x20

圖片

DIEPDMA****i

寄存器偏移:0x914 + i*20

Scatter/Gather DMA模式時該寄存器的值即用戶指定的描述符鏈表的地址

非Scatter/Gather DMA時該寄存器的值即用戶指定的DMA待發送數據的地址。

必須DWORD即8字節對齊。

比如這里描述符鏈表使用了全局數組,用attribute指定對齊大小

attribute ((aligned(8))) static uint32_t s_dam[1024][2];

注意該寄存器在每次處理完描述符后會遞增,用戶可以通過該寄存器判斷DMA是否進行了描述符的處理。

注意該寄存器需要CTL寄存器ENA置位后才能回讀否則讀到的是0.

我們以一個實例來看該寄存器值的變化,以下是關鍵代碼,即準備一次DMA發送,前面描述符的準備過程不在這里貼出。

void ep_writedma(uint32_t dma, uint8_t epnum)
{
  REG_DIEP_DMA(epnum) = dma;
  REG_DIEP_CTL(epnum) |= (DEP_ENA_BIT | DEP_CLEAR_NAK);
}

以下是執行REG_DIEP_DMA(epnum) = dma;前,寄存器DIEPDMA1的值為0

傳入的參數即描述符鏈表的地址是0x81008d8是8字節的對齊的

此時a0為0x81008d8,即我們的描述符鏈表的地址

a4為寄存器地址0x3000934,sw a0,0(a4) 即將0x81008d8寫入寄存器0x3000934
圖片

注意在CTL寄存器使能端點之前是不能回讀該寄存器的值的,如下為0

執行完sw語句再來看,此時DIEPDMA1還是0

圖片

在執行完使能,CTL寄存器的ENA置位后才能看到,如下此時看待DIEPDMA1的值變為了0x08100968,為什么不是寫入的0x81008d8呢,也就時之前說的,ENA一置位,DMA就會去處理該描述符,0x08100968-0x81008d8=0x90=144 ,144/8=18個描述符(一個描述符2個WORD8字節)。

圖片

那么為什么該寄存器值遞增了這么多呢

那是因為我們這里配置p_dam就是配置了18個描述符,如下18個DWORD,所以可以看到如下18個描述符一起處理完了,最后一個描述符標志了是最后一個。

圖片

DIEPDMABi

寄存器偏移:0x91C + i*20

該寄存器只有Scatter/Gather DMA模式有效,非Scatter/Gather DMA模式,DIEPDMAi就是用戶緩沖區的地址,也就是Scatter/Gather DMA模式的本寄存器。

用于指示當前正在處理的用戶緩沖區的地址,DMA處理完指定緩沖區后就會更新。

所以從該寄存器可以看到是否處理了用戶的緩沖區數據。

同樣是CTL的ENA置位后,處理完描述符后更新,從以下可以看出最后一個描述的用戶數據緩沖區地址為0x8704400長度為0x3C1,所以處理完后DIEPDMAB1更新為了0x87047C1

圖片

總結

這里重點講解了DMA相關的兩個寄存器,主要是他們可以協助分析數據發送,比如有時候數據沒有發出,可以從這里看出是否處理了描述符,是否處理了用戶數據,來協助判斷當前狀態。

審核編輯 黃宇

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

    關注

    31

    文章

    5424

    瀏覽量

    123512
  • usb
    usb
    +關注

    關注

    60

    文章

    8150

    瀏覽量

    271107
  • dma
    dma
    +關注

    關注

    3

    文章

    573

    瀏覽量

    102408
  • 驅動開發
    +關注

    關注

    0

    文章

    133

    瀏覽量

    12261
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于DWC2USB驅動開發-0x06 DWC2 USB2.0 IP 頭文件與寄存器的讀寫操作

    上一篇我們介紹了控制寄存器,而驅動的編寫底層無非就是配置各種寄存器,所以第一步先要準備寄存器的頭文件,對
    的頭像 發表于 05-16 14:04 ?2934次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-0x06 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP 頭文件與<b class='flag-5'>寄存器</b>的讀寫操作

    基于DWC2USB驅動開發-IN端點發送相關寄存器詳解

    上一篇我們介紹了IN端點,發送DMA相關的兩個寄存器,這一篇繼續講另外的幾個寄存器
    的頭像 發表于 07-17 07:41 ?2578次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-IN端點<b class='flag-5'>發送</b><b class='flag-5'>相關</b>的<b class='flag-5'>寄存器</b><b class='flag-5'>詳解</b>

    基于DWC2USB驅動開發-DOEP接收相關的其他寄存器詳解

    前面介紹了DOEP的DMA相關寄存器,這一篇繼續來講剩下的寄存器
    的頭像 發表于 07-19 10:50 ?1947次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-DOEP接收<b class='flag-5'>相關</b>的其他<b class='flag-5'>寄存器</b><b class='flag-5'>詳解</b>

    基于DWC2USB驅動開發-0x05 DWC2 USB2.0 IP 寄存器介紹

    本文對控制寄存器有了一個整體上的概覽,先了解個大概,了解寄存器的組織結構,大致了解一下常用的寄存器。后面編程時再一個個對照每一個寄存器
    的頭像 發表于 05-16 12:50 ?4232次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-0x05 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP <b class='flag-5'>寄存器</b>介紹

    基于DWC2USB驅動開發-0x0D PHY寄存器讀寫代碼編寫與測試

    我們前面重點介紹了ULPI接口和PHY的寄存器,這一篇來進行PHY寄存器讀寫的代碼編寫與測試。從這一篇開始就正真進入了驅動編寫的過程了。
    的頭像 發表于 06-06 13:03 ?3140次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-0x0D PHY<b class='flag-5'>寄存器</b>讀寫代碼編寫與測試

    基于DWC2USB驅動開發-DOEP接收相關DMA寄存器詳解

    前面我們詳細介紹了發送即DIEP相關的一些寄存器,這一篇我們來看看接收即DOEP相關的一些寄存器。形式上DOEP和DIEP
    的頭像 發表于 07-19 09:00 ?1802次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-DOEP接收<b class='flag-5'>相關</b>的<b class='flag-5'>DMA</b><b class='flag-5'>寄存器</b><b class='flag-5'>詳解</b>

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

    本篇講解Scatter/Gather DMA模式下控制傳輸相關寄存器。控制傳輸是USB驅動的核心部分,控制傳輸調通了
    的頭像 發表于 07-24 00:07 ?3578次閱讀
    基于<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><b class='flag-5'>寄存器</b>

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內的組成部分。寄存器是有限存貯容量
    發表于 03-08 14:26 ?2.2w次閱讀

    數據寄存器,數據寄存器是什么意思

    數據寄存器,數據寄存器是什么意思 數據寄存器數據寄存器包括累加AX、基址寄存器BX、計數
    發表于 03-08 14:38 ?1.3w次閱讀

    ARM寄存器詳解

    ARM有37個寄存器,其中31個通用寄存器,6個狀態寄存器。   這里尤其要注意區別的是ARM自身寄存器和它的一些外設的寄存器的區別。
    發表于 07-10 10:04 ?3041次閱讀

    DSP2812寄存器詳解

    DSP2812寄存器詳解DSP2812寄存器詳DSP2812寄存器詳解
    發表于 01-08 14:17 ?8次下載

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實現。
    發表于 05-20 11:47 ?0次下載

    51寄存器的所有寄存器名稱,(包括寄存器每一位的作用及用法)資源詳解

    51寄存器的所有寄存器名稱,(包括寄存器每一位的作用及用法)資源詳解
    發表于 10-16 13:04 ?14次下載
    51<b class='flag-5'>寄存器</b>的所有<b class='flag-5'>寄存器</b>名稱,(包括<b class='flag-5'>寄存器</b>每一位的作用及用法)資源<b class='flag-5'>詳解</b>

    移位寄存器怎么用_如何使用移位寄存器_移位寄存器的用途

    移位寄存器是一個具有移位功能的寄存器,是指寄存器中所存的代碼能夠在移位脈沖的作用下依次左移或右移。本文主要介紹了移位寄存器的用途以及移位寄存器
    發表于 12-22 15:49 ?2.1w次閱讀

    ARM通用寄存器及狀態寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態寄存器的認識與理解。
    的頭像 發表于 01-06 14:58 ?8328次閱讀
    主站蜘蛛池模板: 激情综合五月亚洲婷婷 | 国产日本特黄特色大片免费视频 | 婷婷sese| 午夜影院免费观看视频 | 日韩美女影院 | 婷婷99精品国产97久久综合 | 四虎在线观看一区二区 | 看真人一级毛多毛片 | 1024国产欧美日韩精品 | 97色婷婷成人综合在线观看 | 欧美性xxxxxbbbbbb精品 | 久久亚洲精品国产精品婷婷 | 午夜精品福利视频 | 手机看片免费永久在线观看 | 国产精品久久久久久久免费 | 一级一级特黄女人精品毛片 | 国产福利观看 | 婷婷四房播客五月天 | 美女视频永久黄网站在线观看 | 欧美资源在线观看 | 亚洲高清视频一区 | 日本在线播放一区 | 中文字幕亚洲一区二区三区 | 日本欧美一区二区免费视 | 亚洲一区免费看 | 色多多成视频人在线观看 | 92香蕉视频 | 成人区精品一区二区毛片不卡 | 亚洲视频在线观看一区 | bt天堂在线www中文在线 | 成人一二 | 特黄特色大片免费播放路01 | 开心激情播播网 | 色天使亚洲综合在线观看 | 91av免费| 老头天天吃我奶躁我的动图 | 亚洲免费在线观看视频 | 天天摸日日 | 色宅男| 欧美午夜视频一区二区 | 成年人www |