色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

DMA地址+偏移量機制詳解:從ADC多通道采樣到串口環(huán)形緩沖區(qū)

DMA地址+偏移量機制詳解:從ADC多通道采樣到串口環(huán)形緩沖區(qū) 做嵌入式這兩年凡是接觸過串口、ADC、SPI這類外設的人八成都被一個問題繞進去過為什么DMA啟動的時候不是從緩沖區(qū)的頭開始傳而是要從某個“地址加上偏移量”的地方開始尤其是當你打開參考手冊或者某個驅動庫的API注釋看到那句“Start transfer from address offset”時心里不免嘀咕這個offset到底怎么算是字節(jié)偏移還是元素偏移是每個通道都要加還是只需要加一次今天這篇就把這個事徹底講明白。我把自己在STM32、GD32以及部分國產MCU上做DMA傳輸?shù)膶崙?zhàn)經驗整理出來圍繞“地址偏移量”這個核心機制把ADC多通道循環(huán)采樣、串口空閑中斷接收、環(huán)形緩沖區(qū)這些高頻場景全部拆開揉碎。無論你是剛接觸DMA的新手還是被數(shù)據錯位、緩沖區(qū)越界折磨過的老手這篇文章都能給你提供一套可以直接抄作業(yè)的配置方案和排查思路。1. 先搞清楚DMA傳輸里的“地址”和“偏移量”到底指什么1.1 DMA的本質把搬運工從CPU換成硬件DMA全稱Direct Memory Access直譯就是“直接存儲器訪問”。它存在的意義只有一個數(shù)據搬運這件事不要讓CPU逐字節(jié)地做而是交給DMA控制器這個專職的“快遞員”來干。CPU只需要在開始時告訴快遞員三個關鍵信息——從哪拿貨源地址、把貨放哪目的地址、拿多少貨傳輸長度然后就可以干別的事去了。等快遞員干完活再發(fā)個中斷通知一下。這個模型在很多場合下非常好用但它有個隱含的限制DMA控制器這個快遞員認的是“絕對地址”。也就是說它只能聽從“從0x20001000這個地址開始搬”這樣的指令而不懂“這個數(shù)組的第3個元素往后”這種相對描述。所以在實際項目里當我們要從某個緩沖區(qū)中間位置開始傳輸時就必須在軟件層把“基地址偏移量”算好然后把最終的結果寫進DMA的地址寄存器。這就是“Start transfer from address offset”這句話的真實含義。它說的不是DMA硬件自己有什么偏移機制而是提醒開發(fā)者你在啟動DMA之前得自己把目標起始地址算準。這個“算準”看著簡單實際是很多數(shù)據錯位、越界問題的源頭。舉個例子假設你有一個uint16_t的采樣緩沖區(qū)adc_buf[64]想從第32個元素開始傳輸那么傳給DMA的存儲器地址就不該是(uint32_t)adc_buf而是(uint32_t)adc_buf[32]等價于(uint32_t)adc_buf 32 * sizeof(uint16_t)。這里的“32 * 2 64字節(jié)”就是偏移量你漏掉任何一個sizeof數(shù)據就會跑偏。1.2 地址偏移的兩種形態(tài)軟件算好 vs 硬件自增搞清楚了偏移量的本質再看DMA控制器里的地址寄存器就會發(fā)現(xiàn)還有另一種“偏移”——硬件自動遞增。大多數(shù)DMA控制器都有一個方向性的地址增長模式Memory Increment / Peripheral Increment。開啟之后每傳完一個數(shù)據單元源地址或目的地址會自動加1對于字節(jié)或加2對于半字或加4對于字。這種增長本質上也是一種偏移只不過它是硬件自動完成的不需要你每次傳輸前手動算。這兩者的區(qū)別很關鍵軟件算好的偏移只在啟動傳輸前算一次傳輸過程中起始地址固定不變。適合“整個傳輸從某個中間位置開始”的場景。硬件自增的偏移每次傳輸后自動變化配合緩沖區(qū)遍歷。適合“從某個位置開始持續(xù)搬運一整段數(shù)據”的場景。實際工程里這兩種經常疊加使用。比如ADC多通道循環(huán)采樣中DMA每次轉換完成都會把結果寫入緩沖區(qū)并且地址自動遞增等寫滿最后一個地址后又回到緩沖區(qū)首地址循環(huán)模式。這時候如果你想在處理中斷里只讀取緩沖區(qū)中間某幾個通道的數(shù)據就需要用“軟件偏移”去定位起始位置而讓硬件繼續(xù)自增以保證后續(xù)數(shù)據的連續(xù)寫入。提示在配置DMA之前先想清楚你要的是“一次固定起始地址的傳輸”還是“邊傳邊遞增地址的流式傳輸”。這個決定會直接影響你選擇普通模式還是循環(huán)模式也影響地址遞增方向是加還是減的設置。2. 場景實戰(zhàn)ADC多通道掃描與循環(huán)采樣里的偏移計算2.1 緩沖區(qū)數(shù)據布局與偏移量推導ADC多通道掃描DMA循環(huán)采樣是“地址偏移量”這個知識點最典型的應用場景。我遇到過太多人在這里栽跟頭要么讀出來的通道數(shù)據張冠李戴要么用DMA讀出來的值和手動輪詢完全對不上。先說清楚數(shù)據布局。假設你用ADC1掃描通道0、1、2、3四個通道開啟DMA請求每次轉換完成自動搬運。那么DMA緩沖區(qū)里的數(shù)據排列是固定的第一次轉換結果寫到buf[0]通道0第二次寫到buf[1]通道1第三次buf[2]通道2第四次buf[3]通道3第五次又回到buf[0]通道0以此類推。如果開啟了循環(huán)模式這個寫入過程會一直持續(xù)下去緩沖區(qū)不停地被刷新。如果你的需求是“每個通道采樣N次取平均值后再用”那么有兩個設計方案方案A緩沖區(qū)大小 通道數(shù) × NDMA一次傳輸長度 通道數(shù) × N傳輸結束后產生一次完整中斷再統(tǒng)一處理。這種方式適合低速周期采樣缺點是緩沖區(qū)大實時性一般。方案B緩沖區(qū)大小 通道數(shù)DMA開啟循環(huán)模式用半傳輸中斷或定時器觸發(fā)去讀取當前數(shù)據。這種方式適合持續(xù)采樣數(shù)據一直是最新的。不管哪種方案定位某個通道的數(shù)據都需要算偏移。對于通道ch它的第k次采樣結果在緩沖區(qū)中的下標是index ch k * channel_count對應的地址偏移就是offset_bytes index * sizeof(adc_buf[0])比如ADC掃描4個通道你想讀取通道2的最新采樣值在循環(huán)模式下就是buf[2]在深度N的緩沖模式下第3輪采樣的通道2數(shù)據就是buf[2 2 * 4] buf[10]。這個偏移量如果你寫錯一位數(shù)據就串了。2.2 半傳輸中斷不用等整批數(shù)據就能處理前半段再深入一步DMA還有一個很實用的功能叫“半傳輸中斷”Half Transfer Interrupt。它會在DMA傳輸?shù)骄彌_區(qū)一半時觸發(fā)一次中斷全部傳完時再觸發(fā)一次完整傳輸中斷。這個特性在ADC連續(xù)采樣場景里特別有用因為它能把數(shù)據處理分成兩次做降低延遲。但半傳輸中斷也引入了新的偏移問題。假設緩沖區(qū)長度為64個半字128字節(jié)DMA傳完32個半字時觸發(fā)半傳輸中斷。此時前半段數(shù)據在buf[0..31]后半段還正在寫入buf[32..63]。你在中斷回調里處理前半段數(shù)據時讀寫的位置就是一個典型的基礎地址偏移// 半傳輸中斷時有效數(shù)據從buf[0]開始長度32 process_data(adc_buf, 32); // 完整傳輸中斷時有效數(shù)據從buf[32]開始長度32 process_data(adc_buf[32], 32);這里的adc_buf[32]就是“基地址 偏移量”的又一次體現(xiàn)。如果你偷懶寫成adc_buf就會把已經處理過的數(shù)據再處理一遍同時漏掉后半段的新數(shù)據最終結果就亂了。注意半傳輸中斷觸發(fā)的位置取決于DMA字節(jié)數(shù)寄存器CNDTR的初始值減半。如果你的緩沖區(qū)長度是奇數(shù)個數(shù)據單元或者數(shù)據類型不是1字節(jié)對齊半傳輸中斷的觸發(fā)位置可能不會落在你預期的元素邊界上。設計緩沖區(qū)時最好保證總字節(jié)數(shù)是2的冪或偶數(shù)倍避免尷尬的錯位。2.3 常見問題手動輪詢和DMA讀到的值為什么對不上熱詞里有一條“adc的dma模式與手動輪詢值不一樣”這個我太有感觸了。很多人配置好ADCDMA后發(fā)現(xiàn)用DMA讀到的轉換值和直接手動讀ADC數(shù)據寄存器拿到的數(shù)值差得離譜就開始懷疑DMA是不是有問題。其實問題通常出在以下幾個方面第一通道掃描順序和緩沖區(qū)映射順序不一致。ADC掃描的順序不一定就是物理通道的順序有些MCU可以配置掃描序列。如果你的掃描序列是通道2、通道0、通道1、通道3那么DMA緩沖區(qū)里第一個數(shù)據是通道2的第二個是通道0的。你如果按“通道0在buf[0]”的邏輯去讀當然對不上。第二數(shù)據寬度配置不一致。ADC數(shù)據寄存器常見12位存儲在右對齊模式時有效數(shù)據是低12位但寄存器本身是16位或32位寬。DMA搬運時如果數(shù)據寬度設成了8位就會把同一個寄存器拆成兩段搬數(shù)據自然不對。正確做法是把DMA的數(shù)據寬度設置為半字16位或字32位和ADC的數(shù)據寄存器寬度保持一致。第三啟動DMA的時機不對。有些MCU要求先使能DMA通道再觸發(fā)ADC轉換否則第一批數(shù)據可能不完整。反過來如果你在ADC轉換過程中反復開關DMA也可能丟掉部分轉換結果。第四沒有關閉ADC的DMA方式和DMA的循環(huán)模式聯(lián)動。當用循環(huán)模式時DMA會持續(xù)搬運數(shù)據并覆蓋緩沖區(qū)。如果你在讀取數(shù)據的同時DMA還在寫入就可能出現(xiàn)“讀到一半被覆蓋”的情況數(shù)值當然不穩(wěn)定。解決辦法是開啟環(huán)形緩沖區(qū)后搭配雙緩沖區(qū)Double Buffer機制或者在數(shù)據處理期間暫停DMA拷貝完再恢復。3. 場景實戰(zhàn)串口DMA 空閑中斷與環(huán)形緩沖區(qū)偏移3.1 不定長接收的組合方案串口接收一直是DMA應用的高頻場景尤其是“DMA 空閑中斷IDLE Interrupt”這套組合幾乎成了MCU串口接收不定長數(shù)據的標準解法。它的原理不復雜DMA一直在后臺搬運串口收到的數(shù)據到內存緩沖區(qū)CPU不參與當串口總線上出現(xiàn)空閑狀態(tài)也就是一幀數(shù)據發(fā)完了總線靜默超過一個字節(jié)時間硬件會觸發(fā)空閑中斷此時CPU才介入處理緩沖區(qū)里剛收到的一整包數(shù)據。這個方案的好處是顯而易見的高頻數(shù)據由DMA搬運CPU只在一包數(shù)據接收完畢的瞬間被喚醒一次處理完繼續(xù)休眠極大降低CPU占用率。但正因為DMA是“一直在后臺跑”的緩沖區(qū)中的數(shù)據不會每次從0開始。如果你接收了第一包數(shù)據比如20字節(jié)后沒有及時處理緊接著來了第二包比如15字節(jié)DMA會從上次停止的位置繼續(xù)往后寫。這就是環(huán)形緩沖區(qū)Ring Buffer概念的由來也是“地址偏移量”的又一個典型應用。3.2 寫偏移的實時計算與讀偏移管理在串口DMA發(fā)送環(huán)形緩沖區(qū)中一般有兩個偏移量需要維護讀偏移read_indexCPU從緩沖區(qū)哪個位置開始取數(shù)據。寫偏移write_indexDMA下一次寫入的位置。對于DMA接收來說寫偏移其實不需要軟件維護因為DMA硬件自己知道它寫到了哪里。我們通過DMA當前剩余計數(shù)也就是CNDTR寄存器的值可以反推出“DMA已經寫到了哪里”write_index buffer_size - (uint16_t)DMA_GetCurrDataCounter(DMAx_Channelx);這個公式是串口DMA接收的核心。緩沖區(qū)大小是固定的DMA剩余計數(shù)代表還有多少個數(shù)據沒搬完所以“已搬完的數(shù)量 總大小 - 剩余計數(shù)”而這就是DMA當前寫到的位置也就是本次接收數(shù)據的結束偏移。拿到寫偏移后就可以和軟件維護的讀偏移一起組成環(huán)形緩沖區(qū)的讀寫指針。每次空閑中斷觸發(fā)時我們就在中斷里做以下事情讀取當前DMACNDTR計算本次接收的數(shù)據長度。從讀偏移位置開始把數(shù)據拷貝到協(xié)議解析緩沖區(qū)。更新讀偏移 (讀偏移 本次接收長度) % 緩沖區(qū)大小。這里最關鍵的一個細節(jié)是空閑中斷觸發(fā)后DMA并沒有停止它還會繼續(xù)接收后續(xù)數(shù)據。所以你必須先把數(shù)據從環(huán)形緩沖區(qū)取走或者讓DMA繼續(xù)往緩沖區(qū)后面寫。如果你在中斷里處理時間太長新來的數(shù)據可能覆蓋掉還沒處理的數(shù)據。3.3 一個可參考的STM32F4串口DMA配置代碼關鍵部分直接上一份我常用的STM32F407串口DMA接收初始化代碼這套配置在F1/F4系列上都能直接用GD32的兄弟們把庫函數(shù)換一換也差不多。#define UART_RX_BUF_SIZE 512 uint8_t uart_rx_buf[UART_RX_BUF_SIZE]; volatile uint16_t uart_read_index 0; void UART_DMA_RX_Init(void) { // 1. 初始化串口開啟空閑中斷 USART_ITConfig(USART1, USART_IT_IDLE, ENABLE); // 2. 配置DMA接收通道 DMA_InitTypeDef DMA_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); DMA_DeInit(DMA2_Stream5); DMA_InitStructure.DMA_Channel DMA_Channel_4; // 串口1接收對應通道4 DMA_InitStructure.DMA_PeripheralBaseAddr (uint32_t)USART1-DR; DMA_InitStructure.DMA_Memory0BaseAddr (uint32_t)uart_rx_buf; DMA_InitStructure.DMA_DIR DMA_DIR_PeripheralToMemory; // 外設到內存 DMA_InitStructure.DMA_BufferSize UART_RX_BUF_SIZE; // 緩沖區(qū)大小 DMA_InitStructure.DMA_PeripheralInc DMA_PeripheralInc_Disable; // 外設地址不增 DMA_InitStructure.DMA_MemoryInc DMA_MemoryInc_Enable; // 內存地址自增 DMA_InitStructure.DMA_PeripheralDataSize DMA_PeripheralDataSize_Byte; DMA_InitStructure.DMA_MemoryDataSize DMA_MemoryDataSize_Byte; DMA_InitStructure.DMA_Mode DMA_Mode_Circular; // 循環(huán)模式滿了自動回繞 DMA_InitStructure.DMA_Priority DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst DMA_PeripheralBurst_Single; DMA_Init(DMA2_Stream5, DMA_InitStructure); // 3. 啟動DMA DMA_Cmd(DMA2_Stream5, ENABLE); }對應的空閑中斷處理函數(shù)void USART1_IRQHandler(void) { if (USART_GetITStatus(USART1, USART_IT_IDLE) ! RESET) { // 先讀SR再讀DR清空閑中斷標志 USART_ReceiveData(USART1); USART_ClearITPendingBit(USART1, USART_IT_IDLE); // 計算DMA當前寫偏移 uint16_t write_index UART_RX_BUF_SIZE - DMA_GetCurrDataCounter(DMA2_Stream5); // 處理從uart_read_index到write_index之間的新數(shù)據 // 注意要處理回繞如果write_index uart_read_index說明數(shù)據分成了兩段 uint16_t len (write_index uart_read_index) ? (write_index - uart_read_index) : (UART_RX_BUF_SIZE - uart_read_index write_index); if (len 0) { // 拷貝或解析數(shù)據 UART_ParseData(uart_rx_buf, uart_read_index, len); // 更新讀偏移 uart_read_index write_index; } } }這份代碼里最需要注意的地方就是“回繞”的處理。因為DMA循環(huán)模式寫滿緩沖區(qū)后會回到開頭繼續(xù)寫所以write_index可能比read_index小這時候數(shù)據會分成兩段一段在緩沖區(qū)尾部一段在緩沖區(qū)頭部。很多新手在這一步翻車就是因為只處理了write_index read_index的常規(guī)情況。提示如果項目里收發(fā)頻率很高建議在每次空閑中斷里把write_index緩存下來并用一個結構體統(tǒng)一管理讀寫索引避免中斷嵌套導致索引被修改。4. 配置的坑從寄存器到HAL庫的落地細節(jié)4.1 地址對齊與緩沖邊界問題很多人在配置DMA時忽略了一個隱性約束——內存地址對齊。不同平臺、不同DMA控制器對內存地址的對齊要求不一樣。STM32F1/F4系列的DMA比較寬松基本上字節(jié)、半字、字對齊都能兼容。但到了STM32F7/H7系列特別是支持D-Cache的高端芯片上DMA緩沖區(qū)如果沒做Cache Line對齊通常是32字節(jié)就可能出現(xiàn)“DMA寫入的數(shù)據CPU讀不到”“CPU寫的數(shù)據DMA搬的是舊值”的詭異問題。解決辦法是在定義緩沖區(qū)時加上對齊屬性。IAR、Keil、GCC各有各的寫法我常用GCC的#define DMA_CACHE_LINE_SIZE 32 uint8_t uart_rx_buf[UART_RX_BUF_SIZE] __attribute__((aligned(DMA_CACHE_LINE_SIZE)));Keil環(huán)境則可以寫成ALIGN_32BYTES uint8_t uart_rx_buf[UART_RX_BUF_SIZE];這個對齊問題對于“地址偏移量”來說還有一個隱藏含義如果緩沖區(qū)首地址對齊到32字節(jié)而你要從偏移7字節(jié)的位置啟動DMA傳輸那么實際的傳輸?shù)刂肥椎刂?就不再滿足32字節(jié)對齊了。這在硬件層面沒問題但在D-Cache做Invalidate操作時Cache Line的粒度是32字節(jié)你只Invalidate從偏移7開始的區(qū)域實際上會把整個32字節(jié)Line都失效那么Line內其他部分的數(shù)據可能因為沒被DMA更新而讀到舊值。所以建議設計緩沖區(qū)時把偏移量也考慮成對齊粒度的一部分或者干脆在DMA處理前后對整塊緩沖區(qū)做Cache維護。4.2 D-Cache一致性處理F7/H7這個話題值得單獨拿出來說。在帶D-Cache的MCU上STM32F7、H7、部分國產高端芯片DMA和CPU之間的數(shù)據一致性問題是排第一位的坑。CPU訪問DMA緩沖區(qū)時會優(yōu)先讀Cache里的數(shù)據。如果DMA已經從外設搬了新數(shù)據到內存但Cache還保留著舊數(shù)據CPU讀到的就是“過期”的數(shù)據。反過來如果CPU往緩沖區(qū)寫了數(shù)據準備讓DMA搬走但數(shù)據還滯留在Cache里沒有寫回內存DMA搬走的就是內存里的舊值。解決方案是操作DMA緩沖區(qū)前后做Cache維護DMA發(fā)送前執(zhí)行SCB_CleanDCache_by_Addr把CPU寫的數(shù)據刷回內存。DMA接收后執(zhí)行SCB_InvalidateDCache_by_Addr使Cache失效讓CPU下次讀取時從內存重新加載。這里又出現(xiàn)了一個“地址偏移”的細節(jié)這兩個維護函數(shù)都需要傳入起始地址和長度而起始地址就是“基地址偏移量”。如果你只在初始化時維護了基地址而實際DMA傳輸是從偏移位置開始的長度也沒對齊到Cache Line那維護就是不完整的。4.3 國產芯片GD32、HC32等的差異點這些年國產MCU用得越來越多GD32、HC32、AT32這些芯片我都用過。它們多數(shù)兼容STM32的DMA框架但在細節(jié)上還是要留意。GD32系列和老款STM32F1很接近但DMA通道和外設的映射關系可能不同。比如GD32F303和STM32F103雖然管腳兼容但DMA通道的請求映射有差異如果你想直接照搬STM32的庫函數(shù)很可能發(fā)現(xiàn)串口3的DMA接收根本不起作用。正確做法是查對應芯片的用戶手冊里的“DMA request mapping”表確保通道選擇正確。HC32系列小華半導體的MCU的DMA和STM32差異就大一些它支持多種傳輸模式包括塊傳輸、重復塊傳輸?shù)?。配置寄存器的手感更接近瑞薩系列。在使用HC32L136這類芯片時我建議直接參考官方例程別按STM32的思維硬套因為它的地址偏移機制和中斷標志位定義差別相當大。注意跨平臺移植DMA代碼時不能只換庫函數(shù)。一定要檢查三樣東西DMA通道與外設的映射關系、中斷標志位的定義、以及地址自增單位字節(jié)/半字/字。這三樣任何一個不對傳輸結果都會莫名其妙地出錯。5. 常見問題排查與避坑清單我把這些年調試DMA時遇到的典型問題整理成一張速查表基本上遇到“數(shù)據不對、傳輸不啟動、死機重啟”這幾種現(xiàn)象照著查就行:現(xiàn)象可能原因排查方法DMA傳輸不啟動CNDTR一直沒變化DMA通道和外設請求映射錯誤查看芯片手冊“DMA請求映射表”核對通道配置數(shù)據全部錯位或字符顛倒數(shù)據寬度配置不一致外設8位/內存16位等確保外設和內存的數(shù)據寬度一致或正確處理半字/字序ADC多通道只有第一個通道數(shù)據對掃描順序和緩沖區(qū)映射順序不一致打印緩沖區(qū)前N個數(shù)據手動核對通道對應關系串口DMA接收偶爾丟包、粘包空閑中斷處理時間過長DMA繼續(xù)寫入覆蓋未處理數(shù)據縮短中斷處理時間或改用雙緩沖區(qū)機制DMA和CPU讀到的數(shù)據不一致D-Cache未做Clean/Invalidate維護在DMA操作前后調用Cache維護函數(shù)確保緩沖區(qū)對齊程序進入HardFaultDMA寫入地址越界檢查偏移量計算是否有誤尤其是“元素長度”沒乘sizeofDMA循環(huán)模式緩沖區(qū)被覆蓋處理速度跟不上DMA寫入速度擴大緩沖區(qū)提高中斷優(yōu)先級或使用半傳輸中斷分流處理修改緩沖區(qū)大小后數(shù)據亂了CNDTR初始值未同步修改排查所有讀取CNDTR的地方確保都用同一個宏定義除了表格里的問題我再補充幾個獨門經驗第一個DMA傳輸數(shù)據長度的單位是“數(shù)據單元”而不是“字節(jié)”。CNDTR里填的是“要傳多少個數(shù)據單元”數(shù)據單元的大小由數(shù)據寬度決定。如果你配置的是16位寬度傳輸100個數(shù)據單元就是200字節(jié)。算偏移量時偏移也要按數(shù)據單元算不是按字節(jié)算。我記得有一次一個項目里ADC緩沖區(qū)明明是200個半字我按字節(jié)寫了CNDTR400結果DMA直接越界寫到了無關內存區(qū)查了好久才發(fā)現(xiàn)是這里的問題。第二個環(huán)形緩沖區(qū)的“回繞”絕對值最容易被忽略。上面串口例子里已經演示了回繞時的長度計算實際項目里如果緩沖區(qū)大小是2的冪可以用位與運算來快速實現(xiàn)取模index (index 1) (BUFFER_SIZE - 1)但前提是緩沖區(qū)大小嚴格為2的冪。這個技巧在中斷里能省不少CPU時間。第三個DMA調試時不要急著仿真正常流程先給一個固定數(shù)據源比如手動往外設數(shù)據寄存器寫值做小樣本測試確認地址和len正確后再接真實外設。// 判斷DMA緩沖區(qū)是否有回繞的小工具函數(shù) uint16_t RingBuf_GetDataLen(uint16_t read_index, uint16_t write_index, uint16_t buf_size) { if (write_index read_index) return write_index - read_index; else return buf_size - read_index write_index; }排查DMA通訊問題時建議先不要用調試器的“暫?!惫δ?。因為暫停的一瞬間DMA還會繼續(xù)跑你看到的寄存器值和內存內容可能已經過時。正確做法是做一個簡單的“自測模式”每收到一包數(shù)據就點亮一個LED確認傳輸邏輯通了再去看數(shù)據內容。6. 我對“地址偏移”這個設計的理解與使用建議關于DMA使用中的地址偏移我個人的體會有幾點。首先在工程結構上建議把“偏移量計算”封裝成獨立的、可復用的函數(shù)不要每次在使用的地方臨時拼地址。這樣一旦數(shù)據類型變化從uint16_t換成uint32_t從數(shù)組換成結構體只用改一個函數(shù)避免在多個位置遺漏。// 用一個宏統(tǒng)一計算緩沖區(qū)中某個索引的偏移地址 #define BUF_OFFSET(buf, index, type) ((uint32_t)(buf) (uint32_t)(index) * sizeof(type)) // 使用示例 uint32_t addr BUF_OFFSET(adc_buf, 5, uint16_t);其次設計DMA緩沖區(qū)時一定要預留足夠的余量尤其是串口、CAN這類可能收到不定長數(shù)據的場景。把緩沖區(qū)設成最壞情況下最大包長的2倍以上至少能留出處理時間窗口避免在高負載時數(shù)據被覆蓋。再次遇到DMA傳輸問題的時候還原基本法最有效第一看外設的數(shù)據寄存器是不是真的產生了數(shù)據第二看DMA地址寄存器對不對第三看傳輸長度對不對第四看通道請求是否使能。按這個順序排查大多數(shù)問題都能在10分鐘內定位。最后想說DMA的“地址偏移量”這個機制雖然基礎但它實際上是整個DMA靈活性的基石。真正把基地址、偏移量、數(shù)據寬度、地址自增方向、循環(huán)模式這五個參數(shù)搭配好你就能設計出很優(yōu)雅的數(shù)據流方案——比如多通道AD采集、連續(xù)攝像頭的斷續(xù)圖像傳輸、串口雙緩沖收發(fā)全都是這套東西的組合應用。能把這些基礎機制用順了以后再遇到那些看起來很復雜的外設驅動也就沒那么可怕了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
另类专区加勒比| 日韩成人综合网| 中文精品一区二去| caopeng97| 午夜操一视频一区| 牛黄色久午久| 曰韩香蕉97| 大学生美女口爆| 人妻乱仑一区二区三区| 亚洲污一污二| 婷婷影院入口| 91久久精品美女高潮喷水| 国产在线强奸视频| 丁香六月激情综合| 伦理日韩国产久久| 蜜乳AV色欲AVAV无码| 十八禁黄色成人网站观看| 九九九不卡| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 大香蕉黄色一区| 色 亚洲 91| 日韩一级欧美一级国产一级台湾 | 亚洲欧美日韩国产丝袜自拍中文| 激情综合网激情综合| 很很干很很操| 久久精品国产亚洲av水密被窝| 久草福利在线资源站| 伊人嫩草| 欧美日韩国产色图在线| 香蕉大久久久| 精品国产乱码久久久久久口爆网站| 日本一天色道久久久精品视频| 91亚洲电影| 成人短视频在线观看| 9精品久久久久| 国产一区二区三区中文字幕| 97精品免费视频网站| 天天搞在线综合网| 日韩欧美~中文字| 五月丁香综合激情| 欧美高清无码免费视频高清版| 免费农村成人少妇人妻Aa一区二区视频 | 一区二区三区看视频| 手机看片1024你懂的国产| 国产女主播视频在线观看| 人妻少妇被猛烈进入中| 亚洲丝袜99| 牛黄色久午久| 免费观看一区| 97视频620| 日本性爱网址| 神马九九| 色踪合AV| 蜜臀少妇一区二区| 成人麻豆av电影网站| 91麻豆天美国产欧美日| 97在线视频观看| 久久亚州高清| 欧美亚洲中文字幕| 日日骚中文字幕| 亚洲伊人久久精品狠狠在线| 国产亚洲精品无码三区| 日韩中文9| 久久久国产三级黄色片| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 国产午夜无码片在线观看影视| 九九热午夜欧亚国产视频| 中文字幕日本久久| 伊人一区二区在线播放| 久久久无码精品人妻二区| 国产欧美亚洲精品a第2页| 久久高潮妇女视频| 劲爆欧美人妖三区91| 综合久久中文字幕综合日韩精品| 中日韩一区二区三区欧美| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 熟妇一区二区三区| 大香蕉综合| 超碰97护士| 大香蕉琪琪日本女优不卡| 色婷婷香蕉| 亚洲无码成人精品| www久久国产精品| 美日韩一二三区| 美国美女AV在线| 奇米狠999| A级片日韩欧美国产欧美视频精选观看| 精品九九淫乱男| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 大香蕉啪啪网| 日韩午夜啪啪视频| 大黄片做爱的大的| 亚洲一卡二卡在线免费| 国产女同在线观看视频| 青娱乐休闲视频在线观看| 噜噜噜久久亚洲精品色情| 五月婷婷六月色| 国产精品久久妻无码网站| 99精品综合久久久久五月天| 美性中文综合网| 大香蕉手机视频| 强奸乱伦Av网| 性饥渴少妇av无码毛片| 中文字幕后石码四区五区| 97视频在线视频| 美腿丝袜高跟网免费视频免费视频| 天天流夜夜操| 伊人91| 色色香蕉| 最新三级网址| 五月丁香六月综合缴清无码| 丝袜足交视频| AV女资源| 日韩AV噜噜噜一区二区三区四区| 骚货操死你| www.av不卡中文字幕| 天堂在线一区二区| 欧美天堂第二区| 亚洲一二三| 人妻精品一区二区全免费| 亚洲五月丁香花狠狠干一区二区三区| 亚洲限制级在线| 成人资源中文字幕在线观看天天| A片三级无码| 成人性爱视频在线看| 秋霞网—男女啪啪亚洲免费体验区| 国产日韩在线播放av| 91狠狠| 上特色A在线| 农村少妇久久久久久久| 一起草三级AV电影在线观看| 亚洲图片欧洲图片aⅴ| 欧美日韩插逼视频| 亚洲一曲日韩精品| 一区二区三区激情在线观看| 五月天成人综合| 99热精品在线在线| 日本美女性生活久久久久久久| 蜜臀久久一区二区| 91中文精品日韩欧美在线| 久久久久久九九九九-美女久久久久久久-成人AV | 91美女视频在线免费观看| 久久欧洲| 啊啊啊啊啊舒服| 青青草五月份天| 亚洲欧美综合网 | 天堂岛av| 久久綜合很很很| 亚洲 欧美 另类 日韩 人妻一区| 亚洲天堂日本| 怡春院久久| 欧美少妇色图| 操逼天美3区| 亚洲国产午夜真人一级片中文字幕精品黄网站| 激情五月天色色网| 人妻夜夜爽天天爽麻豆三区网站 | 91老司机视频| 亚洲?V高清一区二区三区尤物| 男人的天堂com| 男女性无套 免费九一| 青青操综合网| 女同亚洲欧美一二三区久久电影| 成人精品在线观看| 中日韩久久人妻一区二区| 精品国产乱码久久久兰草影视| 日日嗷| 免费A片三p视频| 欧美精品99久久久**| 在线v中文字幕一区二区三区| 操碰97| 按摩中文字幕| 91亚洲网站| 欧美成年人性爱视频免费观看| 中文字幕91页| 超碰97人人乐| 久久二| 网站A V在线| 韩国午夜理伦三级好看| 老师充足的奶水小说| 国模久久在线| 日本欧美一区二区三区视频麻豆| 亚洲九区| 丝袜天堂| 一区二区高清视频| 天天色播| 97超碰超欧美。| 爱爱动态60秒| 色综合99| 久久人体一区二区| 东京热男人的天堂精品| 麻豆天美传媒在线视频天堂| 午夜传煤十二区精品| 亚洲乱色熟女一区| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 欧美熟妇操操视频| 欧美性性性| 亚洲一卡二卡在线免费| 欧美黄色图片| 台湾一区国产高清在线| 日韩三级网址| 69精品| 偷窥自拍亚洲天堂网爆| 一区超碰一区| 久久久成人国产精品无码| 高跟伊人julia ann| 四虎精品一区二区| 人妻激情偷乱视频一区二区三区 | 国产精品婬乱一级毛片彝族| 超碰碰97| 国产9 9在线 | 亚洲| 男女打扑克高清网站| 大香蕉2017| AA特级绝黄| 色www精品视频在线观看| 人人操人人色人人摸| 99热这里| 欧美亚洲小说| 嗯嗯啊啊啊好舒服| 日韩欧美性爱电影在线观看| 日韩另类色图| 精品久| 欧美综合站| 嗯嗯啊啊啊好爽| 国产精品老师| 色欲久久99国产精品久久久久久| 成人情色一区二区| 好属操| 五月丁香久久| 中文字幕在线免费观看 | 三及片网站| 免费看日本操逼视频| 性欧美| 日韩性爱小视频在线观看| 麻豆人妻偷人精品无码视频| 九九综合久久| 超碰在线一区二区| 国产美女激情| 国产精品自产拍在线观看社区| 国产精品suv一区| 国产91乱伦| 嗯嗯啊啊的视频| 五月婷网站| 成人九九| 欧美一二三区四五区| 黄片免费视频2019| 蜜乳av一区二区三区四区不卡| 精品国产片亚洲一区| 东北熟女91| 91丝袜美女| 无码最新| 欧美性夜| 天天天天天天天天综合| 大香蕉丝袜一级片| 先锋影音av先锋一区| 美女91在线观看| 欧美亚洲中文字幕| 久久草草亚洲蜜桃臀| 在线黄色污污网站| 色婷婷丁香五月天| 日本色色视频网站| 69天堂| 女人的天堂大香蕉网| 丝袜综合| 操比国产| 亚洲精品尤物yw在线影院| 欧美日韩情色一区二区| 国产AV无码AV| 91av熟女人妻| 国产深喉视频一区二区| 操b网站亚洲无码| 色人久久| 欧美极度丰满熟妇hd| 欧美第五页| 大香蕉 222| 伊人五月天| 日韩操p| 久久久久久人| 大香蕉十区| 性爱av网站| gogogo免费高清看中国国语| 高清无码人妻久久久一区二区三区aⅴ| 蜜奶av| 99热日本| 婷婷午夜成人色中色| 999精品乱码| 伊人亚洲综合| 一区中文字幕二区日韩| 国内91熟女人妻丝袜天天精品视频在线 | 青青草大香蕉视频| 欧美色图97| 第四色色综合91| 久久久A∨| 综合激情婷婷| 91四海无码日韩欧美| 欧美亚洲性爱一区二区| 黄色激情电影在线观看| 四虎在线视频| 熟妇人妻一区二区三在线| 精品二区久久| 五月天AV资源| 大香蕉色欲AV| 久久精品久久九九精品| 亚熟在线| 日本淫乱女一区二区三区视频| 97人妻免费中文字幕| 97爱亚洲综合色| 久久精品久久久久久久| 久久xx| 天天爱综合网| 国产乱色国产精品免费视| 男人夜色天堂ss| 9久9久| 蜜乳AV一区二区三区四| 久久少妇人妻| 十八禁啪啪视频| 五月天丁香欧洲日韩| 日本媚薬中文字幕在线| 男人的天堂2010| 日韩在线电影| 一二三啪啪专区| 精品人妻中文字幕高清| 国产一区二区在线看| 国产av激情无码久久天堂| 欧美熟妇精品黑人巨大一二三区| 懂色中文一区二区三区| 蜜臀一二三区| 国产玖玖| 中文字幕一二区二三区人妻专区| 禁十八久久| 日韩性爱毛片操骚逼| 精品性爱久久视频| 国产亚洲色婷婷久久99精品91葵花宝典 | 裸体美女免费看网站青草| 午夜精品久久久久久久第一页按摩| 99色在线观看| 99久久久无码国产精品性啊聊| 五月综合色| 友优传媒精品在线一区二区| 中文字幕版| 国产强奸乱伦xd| 色综合超碰超| 操逼视频免费日韩无码| 免费精品无码一级毛片牛牛影视| 国厂麻豆77q4| 亚洲欧洲网站免费观看| 尤物网站91| 殴洲老熟女| 日韩精品一区二区三区色欲| 精品欧美老熟女一二区| 欧美色图在线视频少妇| 欧美熟妇乱码在线一区| 无码精品蜜桃一区二区三区ww| 色69大色97香蕉| 九九无码久久精品视频| 中文字幕性感少妇av| 亚洲国产日韩精品久久久| 又黄又爽在线观看视频| 九九探花视频在线观看| 97欧美超碰| 久久久久国产| 亚洲综合另类欧美久久久| 97在线/亚洲| 99成人| 蜜臀久久99精品久久久| 97超碰免费生活| 东京热激情视频一二三区| 91久久免费视频互動交流| 97超色| 五月丁香六月婷| 日韩人妻有码免费视频| 东京热天堂网| 日韩精品-原创伙伴| 东方亚洲在线操逼天堂| 青青草日本中文字幕 | 中美日韩毛片| 欧美中文字幕一区| 亚洲第一页色| 被体育老师抱着c到高潮| 91欧美网| 精品人妻久久久| 91在线色| 亚洲精品天天影视综合网| 九九RE视频在线精品| 日韩免费福利在线观看| 日韩大香蕉| 亚洲在线观看| 狠狠干妹子| 美女诱惑久久| 欧美日本不卡| 丝袜综合色图| 亚洲不卡不卡中文字幕不卡 | 性爱网站一区二区| 啊啊啊啊啊啊在线| 丰满人妻-区二区三区免费看| 精吧天堂| 2020天天色综合| 校园春色家庭伦理欧美激情| 96精品一区| 麻豆精品三区视频| 大香蕉伊然在亚洲91| 日han少妇无码| 丝袜夫妻自拍| 欧美中文字幕男人天堂久久精品| 欧美精品另类人妖xxxx| 青青草日逼视频| 校园春色制服丝袜中文字亚洲| 99日韩| 国产伦精品一区二区三区在线观| 美女自卫慰黄网站免费| 91小视频| 99无码视频| 两性色网| 五月婷婷久久综合| 混色激情av| 四月丁香婷婷| 91爱看| 亚洲男人天堂2| 亚洲AV不卡在线观看尤物| 天美传媒婬乱| 黄色成人网久久久久久| 亚洲日韩精品一区二区| 国产内射爽爽大片| 国产黄色影片在线观看| 超碰91在线| 5月婷婷6月六月丁香| 亚洲欧美91| 日韩精品区二区三区不卡| 久久免费少妇| 国产美女口爆吞精| 黄网色一区二区三区四区精品| 97操97干| 小少妇| 91强热人妻| 国产精品美女在线一区| hd成人一区二区在线| 综合婷婷| 久久婷婷一区二| 综合天天网| 少妇内射视频| 精品无码久久久久久久久果冻糖心| 日韩av电影成人在线| 探花在线免费观看视频国产一区| av中文在线| 日韩中文字幕av在线播放| 天天综合网1| 97色在线视频| 美国aaaaa一级黄片| 色99在线| 亚洲天堂美臀在线| 婷婷五月天激情四射| 午夜福利av电影在线| 亚洲无码一区二区三区三州| 69精品| 欧美色综合图片| 色婷婷小说| 国产又粗又大硬免费色网视频| 9久久美女首页| 91人妻PORNY九色大屁股| 青娱乐国产剧情av一区| 久热婷婷| 91色图片| 性综合网| 国产尤物AV尤物在线观看不卡| 男人的天堂在线有码| 天天cao在线| 国产69精品久久久久99尤物| 色妹子A V| 亚洲视频二区 | 视频二区熟女人妻| 国产日韩欧美操逼视频| 激情AV| 少妇丝袜在线观看AV| 丰满人妻一区二区三区色-百度| 91人妻久久久久久久久久久久久| 香伊人在线| 亚洲色图91欧美日韩| 亚洲色图第四色| 超碰色97| 成人精品一区二区三区| 亚洲欧洲视频小说在线观看| 中文字幕性感少妇av| 素人一区二区三区日韩| 欧美97av| 欧美日韩精品青青| 欧美日动态视频| 99re6久热只有精品6在线直播| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 美女上床网站| 日本精品一区二区中文字幕| 中文字幕诱惑制服人妻丝袜美丝袜美| 免费观看性欧美一级| 久久久999网站| 又粗又长又大国产不卡| 91色综合激情| 女生久久网| 九九探花视频在线观看| 天天色踪合| 男人的天堂久久久| 亚洲欧美日韩国产丝袜自拍中文| 久久精品老司| 色眯眯射| 国产丰满少妇久久久精品影院| 大香蕉520| 黄片色区软件| 久久综合资源一区二区| 国产精品久久久久久照片| 午夜性生活av免费在线看| 天天射日日干| 密乳视频在线| 999色欧美中文字幕| 一二视频神马久久传媒| KK色在线影院| 狠狠干妹子| 中文熟女五十乱码在线| 亚洲精品黑丝| 久久一二三四五六七八九区区区 | 国产吞精a级片激情电影| 91成人社区| 人、人、摸,人、人、草| 四季av一区二区凹凸精品小说| AA丁香综合激情| 国产精品自拍视频| 福利一级版子| 色99色| 天天影视色香欲综合网小说| 精品96久久| 性爱av在线免费观看| 欧美 亚洲 在线| 欧美大香蕉97| 性影在线视频| 五月天大香蕉| 日本免费一区二| 精品久久99| 淫骚熟女一区二区三区| 国产九九九九九九| 亚洲色阁| 色婷婷香蕉| 97欧美综合网| 级品肉射| 中文字暮97| 玖玖爱视频网站| 天天干1区2区在线| 91精品网站| 国产兽交视频在线播放| 伊人午夜福利视频| 一区二区三区四区理论片| 东北少妇高潮zzzz| aaa一级黄片| 99re黄 | 欧美,日韩,中文,另类| 最近的最新的中文字幕视频| 亚洲人久久久网| 美日韩一二三区| 物业黑人 AV一区| 97国产超碰| 亚州操逼图| 极品白嫩福利在线| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 久草加勒比一区在线| 亚洲欧美日韩免费电影| 8x福利精品第一福利视频导航| 久久草在线综合视频| 天天综合香 ld视频| nuu12国产麻豆精品| 欧美性爱第1 页| 中文字幕精品资源在线| 岛国色情视频在线观看| 日本一二三免费久久| 欧美在线中M| 国产精品密臀网在线观看| 伊人色综合超碰| 欧美日韩夜夜| 夜夜狼人妻| 97 亚洲 日韩 欧美 在线| 久热色情精品| 人人爽天天爽| 啪啪91| 欧美天天插| 亚洲天堂中文字幕无码男同| 中文字幕精品一区二区精品| 婷婷五月天补不补| 97亚洲国产影视| 91AV老熟女视频| 免费视频a级毛片免费视频| 家庭乱伦网站国产| 最好看的中文字幕在线2018| 天天做日日做| 日本视频在线观看污污污| av天堂5| 日韩成人大片在线观看| 91超级碰| 18一区二区三区| 欧美大香蕉97| 另类欧美| 啪啪自拍九九综合| 一本色道综合久久欧美| 日日操丁香五月天| 九九性视频| 久热久一区二区三区| 厕所偷拍在线| 亚洲偷91色| 97这里有精品| 岛国在线免费视频| 操逼网免费无码视频| 亚洲天堂男人在线| 一区二区 电影 亚洲| 操老熟女AV| 日日不卡av| 欧美日韩在线小说| 亚洲图片婷婷五月天| 亚洲另类久操网| 熟女色图在线| 精品人妻久久久| 色哟哟AⅤ| 国产树林里野战在线看| 热久久精品| 精品久久久久瑟瑟| 亚洲交换| 91人精品妻入口| 亚洲乱熟女一区二区三区大香蕉| 蜜桃视频精品一区二区三区| 我爱搞逼综合网| 欧美999| 精品国产肉丝袜在线拍国语| 台湾肥佬网一区二区三区| 99日视频在线免费| 99老司机精品视频在线观看| 99性爱| SUV一区二区在线看| 亚洲欧美首页| 国产乱人伦AVA麻豆软件.| 最新加勒比丝袜在线| 老鸭窝日丰县女人| 人妻干天天| 亚洲综合小说另类图欧美视频激情小说色五月天| 九九久久99| 全国男人天堂网| 曰韩操B| 有码人妻系列| 熟妇人妻一二三区免费| 亚洲成人日韩小说| 五月婷丁香| 97无码视频在线播放| 成年人免费观看网站| 久妇网| 亚洲少妇综合在线播放| 男生通女生屁股| 国产精品网站www| 国产无马av| 青青操综合网| 久久久久久久久久久免费精品| 老熟妇91| 久久久天堂| 97天天插| 超碰97久久国| 久草在| 中文字幕版| 久久手机好看网站| 亚欧精品久久久久久久久久久| 丰满搜索结果 -第18页- 久久高清无码 | 精品少妇高潮久久| 久久久精品中文字幕麻豆| 大香蕉欧美日韩| 免费农村成人少妇人妻Aa一区二区视频 | 国产AAAAAABBBBB| 国产白丝av| 国产精品久久久久久久久久久久久久吹 | 欧美色三级片91| 亚洲 日韩 欧美 国产综合体| 强奸乱亚洲| 青青草天天亲夜夜操网| 国内自拍 日韩激情 99| 偷看洗澡一二三区美女| 在线观看精品国产免费| 懂色AV蜜臀无码精品APP | 丁香九月婷婷| 懂色aV一区二区天美传媒| 亚洲国产97| 69一区二区| 2020久久免费视频| 呦呦影院| 国产精品女生av| 一类无码操逼视频| 97av,com| 久久伊人大香蕉| 亚洲色图日韩丝袜制服一区二区五月在线| 骚熟女吞| 久久久九九| 丰满人妻一区二区三区大胸懂色| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 亚洲色图 综合| 日本黄 R色 成 人网站| 在线观看一级α片刺激高潮视频| 国产精品69久久久久孕妇欧美 | 欧美色性情| 蜜臀一区二区三区在线| 国产一区二区三区免费视频在性观看 | 亚洲丝袜少妇在线| 成人毛片免费| 黄色电影观看久久9| 99久久久无码国产精品性男| 婷婷五月影院| 大香蕉伊人在线成人AV在线观看| 人人摸人人添人人操 | 成人精品在线| 五十路三级片| AA级电影三区| 日韩一二三区| AV女资源| 99色在线| 欧美精品不卡一二三四在线91| 中文字幕免费看大片| 激情久久久| 在线观看视频91| 亚洲欧美成人在线| 日本久久精品| 国产欧美一区激情交| 天天弄天天操| 亚欧毛片基地国产毛片基地| 欧美偷拍| 999久久久久久久久| 亚洲欧美国产va在线| 美女高潮视频91| 久久久久13| 婷婷丁香六月| 女人高潮大叫一级毛片| 另类 日韩 熟女| 乱伦图av| 日本视频一区二区三区| 久操网视频| 欧美天天干| 久久久久免费看少妇A片特黄| 久久精品国产精品一区| 天天综合网网欲色| 超碰2017| 亚洲色狠| 久久的免费性爱视频| 亚洲欧美高清| 日本精品五区| 成人小说另类在线| 成人a v在线播放免费| 老女人综合网| 免费精品国偷自产在线在线| 亚洲欧洲中文日韩女优乱码| 夜夜操美女| 日韩在线一区高清在线| 国产精品干干干| 18禁的网站在线| 天堂中文资源在线bt| 欧美专区日本专区| 日本片日本片祼观看网站在线看中文版网页在线看 | 中文字幕乱妇免费视频| 猛猛干| 亚洲欧美日韩中文播放| 亚洲欧美日韩制服另类| 粉嫩av久久一区二区三区| 国产91啪| 99久久网站| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 国产综合久久久麻桃个 | 亚洲最大黄网| 躁躁日曰躁2020| 亚洲drav色图| 麻豆一区二区三区在线看| 亚洲精品电影| 大香蕉一级黄色片久久| 欧美黄色大片在线观看 | 天美传媒av 在线| 躁躁日曰躁2020| 韩日自拍| 91久久久久久久久18| 国内精品嫩模A∨私拍小视频| 日韩激情啪啪啪| a人欧美综合天堂麻豆| 欧美成人一区二区| 清纯唯美亚洲另类| 亚洲**2021在线观看| 国产亚洲日韩在线三区黑人| 99热91| 一区二区精品更新提醒| 97操碰| 中文字幕日韩专区精品系列| 最近的最新的中文字幕视频| 韩日男人的天堂| 啊啊啊啊啊舒服| 天天影视色香欲综合网小说| 丰满人妻大屁一区二区| 啊啊啊好湿久久| 久久后入制服| 欧美Aⅴ| 丁香婷婷色五月| 亚州日韩97| 大JI巴好深好爽又大又粗视频| 顶级丝袜熟女一区二区三区| 好淫网一二三视区| 性欧美| 超碰成人公开| 欧美久久毛片基地| 96麻豆精品一区二区三区| yellow网站免费观看日韩高清无码| 屌逼麻豆| 欧美综合综合| 久久精品国产亚洲AV高级北京| 富二代亚洲精品99| 欧美日韩久久精品爱爱| 欧美麻豆成人同性GⅤ在线| 嗯嗯嗯啊啊啊操的我好爽| 91日产桃蜜| 秋霞曰韩R级| 亚洲老司机123专区| 思思久热在线精品66| 五月丁香狠狠爱| 久久人妻一区二区三区高清| 天天色黄色影院天天操| 国产婷婷一区| 国产精品 视频| 99免费在线视频| 天天久久久久久| 国产黄色av大片网站| 成人欧美日超碰| 亚洲精品国产熟女| 一区二区三区蜜桃成人撸久久东京热| 深夜福利黄片| 日本熟妇熟色97一本在线观看| 久久在肏| 色情成人五月天| 亚洲 欧美 第一页 | 9999久久久久| 美中日韩无码| 秋霞鲁丝午夜无码一区二区三| 亚洲欧洲综合成人av一区| 老汉网| 精品人体无圣光凹凸| 91久久国产综合精品| 都市久久精品激情亚洲| 国产丰满熟夫69mpp| 伦激情人妻另类人妻| 亚洲视频一二区| 操逼片国产| 精吧天堂| 激情综合婷婷| 资源新线在线天堂| 欧美日日网| a片自拍直播视频| 99999精品成人| 国产精品一区av在线| 欧美与日韩97| 久久婷婷亚洲| 麻豆久久一区二区三区| 日日干夜夜操视频h| 人人艹亚洲| 亚洲交换| 天天欧美色| 大香蕉免费3| 亚洲伊人久久精品影院| 久久久久国产无av| 夜夜欢天天干| 青青草视频在线观看一区二区| 自怕偷自怕亚洲精品| 欧美日韩97在线| 五月丁香婷婷综合| 精品无码欧美三级| a片亚洲一本通视频| 亚洲高清无码免费观看视频| 酒色综合网| 中国黑人三级片网站上区| 亚洲最新a在线观看| 中文字幕黄色一起草| 日韩一区二区熟女| 日韩人成网站在线播放| 97免费视频在线| 日韩人妻无码精品系列| 99日精品欧美国产| 欧洲在线性爱视频| 人人爽夜夜玩视频| 青青国产精品在线| 操逼操逼逼操操逼91| 久久东京热久久| 中文字幕女同在线| 九九黄色网| 狠狠操夜夜| 欧美AB在线| 狠狠爱AV| 中文字幕一区二区三区人妻少妇在线| 国产h片在线观看视频| 超碰色老头| 99久久9| 欧美在线伊人色| 国产原创剧情在线丝袜| 国产亚洲精品A在线观看下载| 伊人性在线视频| 国产25页| 好湿好紧好爽 视频| 91精品人妻电影| av网站免费线看| 精品免费囯产一区二区三区| 黄资源| 蜜桃久久久久久| 日本女人操逼| 无码天天操| 国产女同在线观看视频| 亚洲色图8| 国产精品不卡一区二区三区| 国产视频三区四区| 91超级碰碰碰| 91成人精品在线播放| 思思视频免费看网站| 国产综合久久久麻桃个| 亚洲日韩97| 亚洲天堂日本| 欧美页片| 欧美 日韩 国产传媒| 91在线|亚| 99热思思| 丁香五月婷婷啪啪| 激情看片网站| 欧美顶级黄片AAAAA在线免费看| 日韩在线一区高清在线| 日本一区二区三区免费观看| 99热在线观看| 亚洲精品99999| 青青草好吊色| 91精品人妻一区二区三区蜜桃| 精品大全99999| 精久久久| 国产精品69久久久久久久| 亚洲drav色图| 成人久久久精品| 97超碰中文| 欧美超碰人妻97| 日韩淫色网| 欧美一区二区三区成人性生活| 裸体美女久久久| 97频视在线| 伊人 俄罗斯 a v| 亚洲欧美一区二区不卡视频播放| 国产精品视频播放| 精品久久久久久久久久久久 | 日韩无码视频黄色| 久久免费99精品久久久久久| 激情黄色片在线观看| 激情小说日韩无码| 国产又黄又粗的视频| 日本东京热加勒比久久| 日韩国产成人自拍视频| 精品性爱一区二区| 超碰在线国产| 国模一区二区三区| 久久精品视频久久久| 大香蕉AV丝袜| 欧美亚洲美少妇一区二区| 91精品国久久久久久无码| 亚洲污污网站| 亚洲美腿丝袜香蕉影视欧美成人| 91白虎| 2021国产成人精品久久| 51国产午夜精品视频| 欧美 日韩 亚洲 春色| 日韩精品黄片免费观看| 色情综合| 精品人妻夜夜草| 亚洲精品1区| 日本亚洲嫩草影院啪啪| 搡老女人老91妇女老熟女| CCYY草草影院地址入口| 国产区性爱在线视频秋霞豆| 开心五月婷婷激情| 国产白嫩精品久久| 久久人人爽av亚洲精品天堂桃色 | 91熟女熟妇视频网站| 第四色亚洲色图| 欧美亚洲色的图| 黄片www视频免费| 欧美亚洲另类在线蜜桃| 99热综合| 九九亚洲精品| 亚洲第一页色网| 中文字幕日韩专区精品系列 | 伊人亚洲综合| 九九九网站| 日本免费中文字幕在线| 99热66| 大香蕉琪琪日本女优不卡| 亚洲欧洲综合| 日本一级婬片试看三分钟| 婷婷丁香六月天| 另类视频在线| 国产 日韩 欧美一区| 国产又粗又长又爽又色| 久久久久一本一区二区青青蜜月| 亚洲久久天堂| 九九精品99| 98色网| 欧美黑人日韩少妇色情| 综合久久久久久久久91| 五月丁香大香蕉| 超碰在线第一页| av爱爱爱| 欧洲天天在线| 99re99在线视频| 天天干人人干天天日97| 蜜臀亚洲中文| 少妇熟女一区二区三区| 成年人一级黄色毛片大全在线观看| 操我啊啊啊啊啊| 日韩有码专区| 国产女人成人精品视频| 亚洲97p| 日韩一区二区精彩视频| 国产精品交换一区二区| 日日AAvv| 国产精品呦一区二区三区| 中文字幕视频2区| 超碰地址久久| 亚洲成人网站在线观看| 美女爽爽爽刺痛洞洞| 乱伦一区二区三区‘| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 狠操91,com| se吧提供国产乱老熟视频胖女人| 亚洲有码 欧美精品| 亚洲天堂另类| 久久性爱免费送| 69丨亚洲丨精品丨入口免费播放| 91精品久久久| 91中文精品日韩欧美在线| 日本孕妇一区二区视频操逼免费看 | 久久老熟女| 国产免费一区在线观看| 99精品在线| wwwcaobibi| 国产精品久久久久久久久久二区三区| 制度丝袜99| 激情五月天校园春色网| 99色热国产视频精品| 久久一本大香蕉 | 久久av成人无码免费| 国产第11页| 久久久久国产精品喷潮免费观看臀| 伊人aaa| 国产精品爽爽va在线观看98| 日本加勒比无码专区一二三| 国产小视频91| av天堂加勒比| 色婷婷99| 女性91网站| 天天干天天日天天射黄色大片| 国产亚洲色停停久久99精品91| 嫩草 人人网精品| 中文字幕五月婷婷免费| 97一区二区三区视频| 日日操丁香五月天| 熟女久久| 亚洲AV无码天美传媒一区| 绯色一区二区三区不卡少妇 | 无码137片内射在线影院| a人欧美综合天堂麻豆| 欧美精品99久久久**| 免看60秒涩涩视频| 三级三级三级日本99| J?P?NESEHD熟女熟妇伦| 中文字幕日韩人妻视频一区二区三区交换夫妻 | 欧美图片偷拍| 日韩在线欧美精品一区二区| 欧美色日| 五月天激情婷婷| 97啪啪| 欧美美女后入| 蜜桃臀av在线观看| 亚洲欧洲av影音| 亚洲凸凹超碰成人| 久色网| 强奸抽插av| 夜夜操夜夜高潮夜夜爽国产精品区| 五月天婷婷激情| a片久久久久久久久久久久| 欧美熟女丝袜| 丰满人妻-区二区三区免费| 精品久久无码午夜福利| 国产精品大屁股999| 日韩97视频!在线| 欧美亚洲| 青青草国产欧美非洲黑人| 午夜毛片高清免费不卡| 影音先锋乱伦资源| 中国一级操逼视频| 传媒在线观看一区二区三区| 精品国产污一区二区三区| 人摸人人操人| 97天堂| 久久是精品| 高树玛利亚无码流出| aaa一级黄片| 岛国片在线播放| 欧州91高潮| 天天综合站| 男女激情中文字幕| 五月激情综合网| 蜜乳AV一区| www.色吧5.com| 97亚洲综合在线| 久神马| 91色鬼| 国产精品一二三区福利| 欧美劲爆视频一区二区| 亚洲成人精品在线一区| 干B网| 尤物视频新赏网鲜网色诱网| 97超碰免费人人性爱| 一区二区久久天天干狠狠| www.色婷婷色综合| 人人操人人操人人操人人操人人操人人人11.CM | 2021国产成人精品久久| 精品视频一区二区| 啊啊啊好大好湿| 校园春色亚洲欧洲| 欧美极品少妇交| 色婷婷香蕉| 美国一区二区免费视频| 天天做日日做| 国产日韩色综合| 日本成a人v网站在线观看| 啊啊啊啊操死我| 黑人性欧美| 色综九九九一区| 综合大香蕉美。| 老熟妇一区二区三区啪啪| 一区二区三区蜜桃成人撸久久东京热 | 91最新综合| 亚洲最大黄网| 成人AV素股で擦久久| 超碰人人乐97| 五月天色图影视| 日本在线一二 | 97超碰美女| 久久久久久久97| 五月丁香激情四射| 超碰97护士| 超碰97精品| 国产黄色剧情影片麻豆免费播放| 久久精品一区二区三区四区五区| 97在线看| 亚洲春色一区二区三区| 成人小说另类在线| 久久草草亚洲蜜桃臀| 激情 欧美 亚洲 小说| 91在线秘 男同| 美国一区二区三区视频| 中文字幕一区二区韩| 入口操逼网站| 9999免费精彩视频| 五月丁香婷婷啪啪| 久久久久久亚洲精品不卡人乳 | 9丨久久九九九| 久久久97| 吖在线不卡一区二区国产剧情| 一线黄色免费性爱片| 一个人免费HD91视频| 精品色色| 69综合网|