日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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
返回資訊列表
日韩乱码Av| 成年人性爱日韩| 日韩操p| 亚洲精品中文字幕一区在线视频| 九九色精品| 日韩另类色图| 老女人综合| 91neishe| 四虎AV在线播放| 日本片日本片祼观看网站在线看中文版网页在线看 | 亚洲性网| 偷拍欧美激情| 少妇3P性爱自拍| 99色色网| 国产精品欧美激在线| 日本影视久久免费| 午夜成人福利影视| 色网在线视频观看免费| 国产精品色| 亚洲天堂 视频你懂的| 91高清欧美| 天天操av懂色| 精品国产一区二区三区四区在线看| 久久人妻丝袜一区二区三| 国产嫩草精品A88AV| 中文?日韩?免费?精品| 亚洲另类久操网| 中文字幕一区二区三区四区在线视频| 呻吟 欧美 日本 中出| **一级毛片国产| 噜噜噜噜久久久精品免费| 久久婷五月| 国产在线播放成人免费| 99热国产| 在线情色电影 91大| 六月色色| 久久久日本电影| 9Ⅰ超碰| 极品极品色影院| 小视频国产| 国产欧美日产一区二区三区 - 国产欧美日 | 女沟厕偷窥piss小便| 狠狠夜色午夜久久综合在线| av在线浏览| 天堂无码精品国产久| 91在线丝袜| 欧美97在线观看| 亚洲成人一二三区| 91网站18在线| 伦理片秋霞免费影院| 色香欲综合| 美女一区二区国产精品| www国产天美久久久| 亚洲无码超碰免费| 亚洲色图欧美色图日韩色图| 97综合国产| 91黄站| 91免费看一区二区三区| 久久男人精品| 国产在线综合福利网站| 亚洲丝袜综合| 操逼天美3区| 风流老熟女一区二区三区l| 人人操人人摸人| 亚洲在线观看| 操人91| 美女天天干| www久久国产精品| 亚洲人人操| 97精品国产97久久久久久| 午夜福利一区二区影院| 爱逼综合| 在线洲亚线| 91扒丝袜综合在线| 日韩亚洲美州欧洲综三区一品在线| 欧洲亚洲人妻无码高清久久三区四区| 欧美一区二区亚洲天堂| 国产一区二区久久| 欧美成人精品一区二区三区| 99精品伊人| 99e久久国产精品| 东北女人无套内谢视频| 78m啪啪啪| 97视频观看| 少妇人妻好深太紧了vr91| 色噜噜狠狠色综无码久久| 国产黄a三级三级三级av在线看| 午夜视频久久久久一区| 人妻铁牛TV| 亚洲一本色码中文字幕| 久久久久国产精品喷潮免费观看臀 | 91青青在线视频| 日本免费不卡二区| 91操熟妇| 97AV在线免费观看| 人人噜夜夜操| 校园春色宗合网| 亚洲日产专区婷婷| 天天爽入口| 日夜干射色啊| 亚洲AV无码AV吞精久久久久| 台湾肥佬网一区二区三区| 少妇久久久久| 超碰在线人妻| 久久久久久亚洲精品不卡人乳| 久久久啊啊啊| 久久九七| 亚洲色图综合网| 国产在线视视频有精品| 国产熟妇一区二区| 欧美一二三区四五区| 夜夜天天噜狠狠爱2021| 20cm女自慰在线日韩欧美| 女生看匆91网站| 亚洲熟妇综合久久久久久| 99国产精品人妻人伦| 精品久久久高清无码| 青青免费在线视频一区| 久久精品久| 日韩一999精品| 操逼日批| 欧 美 自 拍 偷 拍| 亚州五月| 97超碰影音| 久久熟女久| 任你爽视频| 婷婷亚洲色| 国产理论视频在线播放| 人妻中文字幕日韩电影| 亚洲欧洲综合视频在线| 伊人青青一区成人视频在线观看区| 9999九九九久久久| 夜夜骑日日| 色999偷自拍拍| 免费作爱一级视频| 亚洲色婷婷综合久久一区二区三区| 国产极品美女高潮无套在线观看| 无码少妇精品一区二区60岁老人| 97天天爽| 日本三级韩国三级美三级91| 久久综合国产精品国产| 久久色激情一区二区三区| 9999久久久| 日韩资源网| 国产成自自拍在线观看| 天堂精品| 懂色av中文字幕一区二区三区天美| 欧美后进式| 欧美夜夜狠| 欧美麻豆成人同性GⅤ在线| 综合色播| 国产精品自拍xxxx| 中文字幕 国产 精品| 国产 日韩 欧美 人妻 熟女 中文 69人妻精品一区二区绯色 | 欧美激情精品久久久| 99re6国产精品99re在线| 99色在线| 亚洲精品骚逼| 日本久久久久久久久久| 欧亚日韩中文在线| 狠狠婷婷亚洲中文综合久久| 亚洲 自拍偷拍 欧美| 日韩性爱免费观看视频| 国产亚洲日韩欧| 日韩黄色一区二区三区| 五月天欧美色图| 人妻精品一区二区三区| av网站在线观看了| 欧美人妻精品| 欧美,亚洲,日韩,v,天堂,手机在线观看| 色臀AV| 999精品国产高清一区二区| 亚洲资源站| 国产AV激情无码久久无码| 成人片在线播放| 97超碰国产精品| 精品人妻1237| 美女网站黄页| 校园春色五月天| 欧美视频一区二区在线| 伊人女女资源在线观看| 99亚亚热| 91天堂| 超碰成人最新最好看| 秋霞欧美性爰视频| 黄色污污污污污污网站| 九九九精品色乱九九九| AA级电影三区| 久久精品亚洲婷婷| 青青草大香蕉在线视频| 久操免费在线| 久久九九国产精品| 欧美大香蕉97| 国产日本一区二区三区蜜臀在线观看| 国内自拍 日韩激情 99| 成人黄页| 99re国产精品视频| 亚洲成人在线高清| 国产宅男宅女在线观看| 強姦亂倫a| 色五月激情AV在线| 超碰97资源大奶| 淫淫总合网| 91 国产丝袜在线放观看| 99在线精品观看视频中文 | 久久精品国产亚洲粉嫩| 超碰在线国产| 天堂69亚洲精品中文字| 99婷婷一区二区| 中文字幕一品色图| 久久亚洲AV成人精品无码| 欧美熟妇色| 亚洲婷婷丁香在线| 欧美日韩中文亚洲v在线综合| 都市激情人妻一区二区青青操视频 | 中文字幕aⅴ在线视频| 高潮毛片无遮挡高清免费| 天天做天天爱天天高潮| 亚洲丰满很很操| 在线αⅴ| 人人操人人摸人 | 无码精品久久久天天影视| 國產尤物AV尤物在線觀看| 欧美在线色图| 三及片网站| 免费的黄片有限公司| 久久国产乱子伦精品免费女人| 日本国产成人亚洲精品无码| 久久久久久久少妇| 九月伊人中文字幕| 91狠狠综合久久久久久| 午夜精品久久999热蜜桃介男人用| www.av家庭乱伦| 欧洲熟妇xxXx欧美老妇裸体| 日本少妇va7777| 中文字幕一区二区三区50路| 97人人草| 成人无码欧美一级A片狼牙直播| 国产超碰AV在线精品| AV天天在线观看| 精品夜夜澡人妻无码AV| 成人短视频在线观看| 欧美色图成人网一区二区 | 72av视频| 久久久久久69国产一区二区| 热久久国产精品视频大陆精品| 一起草在线视频| 国产精选三级在线观看| 欧美日韩精品青青| 抽插无码高清一区| 久久久久成人网| 日韩另类| 青草精品视频-日本久久久久网站| 另类图片五月天| 91久久久久| 亚洲福利中文字幕在线| 色97干| 精品精品精品| 9Ⅰ超碰| 欧美成人9797| 国内一区二区免费| 日本丝袜美腿人妻九九| 精品久久久久久无码| 日韩免费性爱视频在线观看| 91精品人妻一区二区三区蜜臀| 国产伦精品一区二区三区视频女| 国产精品久久久| 九九玖玖精品| 上床不卡网站| 天天做日日做| 亚洲中文字幕久久无码精品| 日本亚洲熟女视频| 天天看天天日天天操| 亚洲丝袜B诱惑| 淫荡熟女乱伦网| 不卡一区视频| 青青草天天亲夜夜操网| www.欧精品| 俺去啦俺来也久久综合| 日本精品一区二区三区四区的功能| 亚洲丝袜二区在线| 久久一二三四不卡 | 亚洲骚男同com| 国产精品毛片?v一区二区三区| 成人精品在线观看| 亚洲丝袜色图| 插穴性爱视频在线观看| 青青草原av| 人人摸.人人色| 精品无码久久久久久久久果冻糖心| 国产400孕妇孕交群| 嫩草91| 免费操逼视频下载| 色狠狠 - 百度| 99老司机精品视频在线观看| 欧美亚洲激情小说| 少妇极品熟妇人妻无码| 精品国产乱码久久久久久影片| 午夜男人的天堂| 2017天天插| 91熟女视频网| 嗯嗯啊啊好大好爽| 美国三级日本三级久久99| 亚码人妻| 欲综合网| 欧美大的香蕉有线电视视频| 中英熟女操女| 9丨久久九九九| 精品女同一区二区三区| 国产乱子伦一区二区三区在线观看| 永久电影三级在线观看| 黑人精品成人一区二区三区| 99天堂网| 丁香激情网| 人妻天天爽夜夜爽2| 午夜天堂精品久久久久91| 久久人妻四季| 国产精品香蕉| 欧美日韩人妻少妇 一区二区三区| 99热66| 日韩噜噜69| 黑人精品久久97| 色香综合天天影视综合| 久久精品国产精品一区| www.男人的天堂| 网页导航五月天免费一二三区 | 超碰吊日色| 久久婷婷亚洲欧| 蜜臀久久久久久999| 郑州宾馆老熟女露脸啪啪| 欧美一级黄色免费专区| 强乱老妇中文字幕| 玖玖爱伊人玖玖爱| 影音先锋一区二区在线资源| 欧美亚洲丝袜美女电影| 男人兔费天堂| 黄片免费看黄片免费看| 果冻国产精品麻豆成人av| 日韩精品一区二区高清| heyZO天然素人无码AⅤ专区| 国产精品探花色| 啊啊嗯嗯好爽| 91熟女网| 亚洲 欧美 色图| 欧美 亚洲 在线| 欧美第五页| 激情婷婷丁香| 青久久| 亚洲精品97中文字幕| 超碰天天操| 75大香蕉| 熟妇高潮精品一区二区三区下载| 欧美在线中M| 欧美曰韩国产精品| 粉嫩av一区二区三区天美传媒| 久久九九97| 亚洲色图A| 中文字幕日韩情色| 亚洲国产精品9999在线观看| 欧美韩国你懂得在线| 国产白丝精品在线观看| 日本一天色道久久久精品视频| 男人的天堂VA| 欧美激情在线观看视频| AV女优男人的天堂| 99精品人妻| 97精品| 探花精品 一区二区| 麻豆天美91| 久久精品| 欧美日日操| 人妻81p| 五月天玖玖资源站| www.色婷婷色综合| 农村妇女一级二级三级视频| 男人亚洲91首页在线| 好淫网一二三视区| 麻豆一区在线| 大香蕉手机在线| 97超碰9| 美女黄网| 日韩黄片视频试看| 国产欧美日韩精品中文| 91无码中出人妻视频| 久久久久精| 97久久超碰国产网站| 人妻天天爽夜夜爽2| 美国黄片aaa| 99re28在线观看| 欧美日韩亚洲天堂| 成 人 A V免费视频在线观看| 九九精品无码专区免费| 亚洲天堂中文字| 夜嗨影院| 久久久久久夜夜夜夜夜| 国产美女口爆吞精| AV天堂国产| 91精品女厕偷拍视频| 91丨九色丨东北熟女| 九九九不卡| 久久性爱网站| 国产激情在线| 国产精品麻豆成人AV艾秋| 99热这里都是精品| 九九精品美女高溯喷水| 日本性爱欧美性爱| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 日韩免费看在线黄色片| 欧美玖玖爱免费玖玖| av网页一区二区三区| 欧美亚洲宗合色性图| 日韩AV一起草| 亚洲全色网| 欧美久久人人网| 熟女久久| 久插综合| 91超级碰碰碰| 亚洲一区在线观看欧洲| av线电影| 久久久一级| 国产传媒操逼视频| 玖玖爱伊人玖玖爱| 欧美性猛交美女自慰91| 成人美女av| 男人天堂新在线| 大香蕉之青青草原| 99re9在线| 奇米狠999| 超碰色老头| 日韩中文9| 超碰亚洲97| 美女十八禁| 亚洲天堂另类小说男人| 午夜一区| 日韩欧美~中文字| 久久综合av| 久久久久久人| 中文字幕97| 日本不卡一区| 视频黄色国产一级| 少妇滛荡视频| 欧美久久毛片基地| 亚洲欧洲激情| 97视频一区| 精品人妻中文字幕高清| 久久久久免费看少妇A片特黄| 免费的黄片wwwwww| 久视频在线观看| 997色在线| 亚洲天堂人妻一区二区| 久久专区| 久久久成人精品| 国产视频不卡在线观看| 嗯嗯啊啊啊好爽| 春色综合免费| 综合色欧美| 97在线免费视频观看| 78操B| 国产一区二区在线播放量| 欧美一区二区福利在线| 中文字幕日韩情色| 99抽插| 岛国大片在线观看网站入口| 久久人| 青草综合| 亚洲日韩精品久久久久一区壹牛 | 手机av天堂久久久久| 天堂蜜桃无码视频一区二区| www.91色| av片在线观看免费播放| 啪啪91| 旡码电影特区| 天天综合网~91综合网| 蜜臀亚洲中文| 天天综合网合集91| 天天干18禁| 青青青国产手线观看视频2| 午夜超爽| 69人妻精品一区二区绯色| 熟女丝袜视频| a片亚洲一本通视频| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 香蕉免费一区二区三区不读| 熟女自慰久久久| 青青操视频在线| 亚洲图片91| 超碰在线1234区| 在线不欧美| 欧美性爱中文字幕无线码| 操迟操逼在巾线Fre看| 国产精品视频白浆免费| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 免费的很黄很污的全部视频| 九九碰九九爱97| 插老姨肥穴| 欧美色九九| 久久直播国产| 99啪啪| 久久香蕉国产线看观看亚洲女人 | 亚洲AV麻豆Aⅴ无码电影一| 国产老太乱伦一区| 国产激情综合| 狠狠色一区二区中文字幕| 日本ZZ高免费A级视频| 性色AV蜜色av色欲av| 九月丁香婷婷| 日韩国产十八禁| 色香欲综合| 欧美一区二区一级岛国大片| 天天综合91在线| 亚洲第一视频 欧美风情 日韩| 嗯啊视频免费在线观看| 欧美色图亚州激情| 欧美性爱第一页久久| 91大学精品激情戏| 男人天堂新在线| 九九综合久久| 亚洲av热热色| 久久久久久久久久久久色网| 久久久久久久亚洲Av无码| 天天综合网1| 精品国产乱码久久| 顶级少妇BT天堂| 成人精品在线免费视频| 夜夜爽33333| 久久精品男人的天堂| 夜夜影视四色| 97色欧洲| 日韩精品一区二区三区色欲| 亚洲亚洲亚洲天堂天堂 | 99热导航| 国产理论视频在线播放| 任你干在线视频| 色综合婷婷| 玖玖久久久| 高清国产av无码| 97网址97| 亚洲国产精品成人无码久久久| 天天内射| 精品国产一区二区三区av在线资源| 后入合集| 蜜臀人妻少妇久久在线观看| 日本一区视频在线观看| 9精品久久| 婷婷五月天AV| 欧美色图综合| 亚洲欧洲无码一区夜| 17c在线成人免费A片观看| 狠狠干妹子| 艳美熟妇先锋一二三区| 日本国产亚洲一区在线观看| 欧美日韩美女精品久草一区二区三区 | 精品人妻一区| 天天综合-91入口| 伦理弟一页| 蜜乳性色无码专日粉嫩骚逼AV| 极品肉射| 男人干美女| 五月婷久久| 乱伦图一区| 欧洲精品欧洲精品| 天天搞在线综合网| 日韩av免费一级电影| 日韩影片中文字幕一区二区三区| 日韩乱伦影音先锋| 日韩熟女无码| 国产专区路线| 午夜性| 人妻久热在线| 欧美制服网站美腿丝袜| 图片区小说区| 亚洲诱惑天堂| 欧美亚洲涩涩| 久久精品无码不卡| 伊人超碰97| 欧美色女人| 中国一级特黄大片护士| 手机看片91人妻| 国产成人午夜视频网址| 超碰九色| 老熟女熟妇| 亚洲欧美一区二区三区在钱蜜桃| 日韩成人精品中文字幕| 日本人妻A片成人免费看片| 乱伦熟女区| 好爽,再快点啊哈嗯嗯嗯嗯| 婷婷15月天青娱乐| 超碰97中文| 在线观看精品国产免费| 成人精品电影| 丁香婷婷激情五月天无毒不卡 | 亚洲成人无码影院| 日韩精品在线观看观看| 亚洲色图91欧美日韩| 久湿久久 | 素人无码中文字幕| 伊人九九| 五月婷婷丁香中文字幕| 精品国产网站| 国产精品欧美在线观看| 97超碰欧美| 手机看片1024你懂的国产| 亚洲欧美中日韩| 青青草一本道福利视频| 综合网少妇| 日日操免费视频| 丁香九月婷婷| 精品小视频在线| 国产精品自拍视频| 日本 色 导航| 久久AV无码1区2区3区| 久久久草草精品| 久久黄色性爱视频| 久久只有精品一区二区三区| 久久专区| 精品99999久久久久久| 日本天天干天天操一区| 欧美色网| AV天堂国产| 日韩精品人妻一| 午夜120视频在线观看| 亚洲欧洲日韩天堂av| 日本护士高潮| 真实高潮91| 国产SV一线| 青青色综合| 国产传媒一区日韩| 激情小说亚洲图片| 超碰在线人人射| 91快色色色色色| 亚洲第一在线视频| 宗合情欲网| 欧美人妻另类在线| 超碰97国产欧美| 综合欧美日韩在线观看| 色综合尤物| 婷婷99| 夜夜一区二区| AV高清一区| 欧美日韩97在线| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 青娱乐999| 333kkkk·亚洲com久久| AV天天综合| 天天日熟妇| 免费成人在线观看91| 麻豆这里只有精品| 久久久久国产| 成人a大片在线观看| 亚洲图片 激情小说| 亚洲一区二区久久久久| 干b在线性社区| 在线欧美69V免费观看视频| 秋霞鲁丝午夜无码一区二区三| 性色av网站| 老鸭窝在线视频播放| 麻豆国产尤物AV| 亚洲 欧美 精品专区 极品| 国产农村妇女精品一二区| 久久香蕉国产线看观看亚洲女人| 色香色香欲天天天影视综合网| 少妇一级无码精品| 精品美女久久一二三| 91呆哥人妻| 99re这里只有精品9| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 中国熟妇| 国产91美女高潮| 变态乱伦伪娘灌肠一区二区| 久久久久密臀视频| 首页中文字幕中文字幕免费| 综合 亚洲 欧美| 亚洲美女精品| 九九黄色网| 欧美高清第一页| 60秒试看最爽10分钟网站| 人看人人摸人人操| 中文字幕1区2区| 欧美亚洲厕所精品偷拍91 | 日本高清免费一本视频在线观看| 91无码人妻| 人人妻人人狠人人| 人妻一区二区三区视频| 尹人免费观看视频在线| 青娱乐国产剧情av一区| 97天天操| 91国产操逼视频| 亚洲国产欧美一区二区潘金莲 | 欧美中文字幕男人天堂久久精品 | 国产一级αv免费看片| 久热精品在线国产| 天天日天天干天天操| 丝袜综合网| 春色综合网| 97天天插| 欧美大片天天看| 亚洲天堂热| 国产97色在线| 自拍鲍鱼一区在线高清观看免费| 伊人激情五月天一区二区| 淫荡少妇免费| 91被操| 黑人操一区二区| 亚洲中文字幕一区二区| 看黑丝美女操逼青青网站| 女人爽到高潮久久久| 人妻丝袜无 码视频专区| 成人精品一区二区91毛片不卡| 久久狠狠色噜噜狠狠狠狠97| 99热线麻豆| 日日噜噜夜夜久久亚洲一区二区| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 污色区网站| 清纯唯美激情| 精品国产99999| 久久久精精精| 亚洲激情视频| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | AA丁香综合激情| 国产人妖的免费的视频| 国产激情av女片自拍| juliaann精品熟女一区| 亚洲 欧美 综合 91| 国产免费一区二区在线A片视频| 欧美熟女丝袜| 五月天日日操夜夜操| 国产精品com| 国产免费一区在线观看| 男人干美女| 久久精品超碰| 成年人性爱日韩| 国产一区二区三区影片| 亚洲AV不卡在线观看尤物| 综合网91| 丁香六月综合激情| 麻豆人妻偷人精品无码视频| 欧美草草高清日韩视频| 免费簧片在线观看| 91高跟美女在线播放| 探花视频免费观看国产专区| 成人三级片无码| 色色99| 亚洲av强奸乱伦| 日本国产高清色www视频在线| 性感女人网页在线观看视频| 欧美日韩一干二干| 久久亚洲一区二区色婷婷| 丝袜亚洲91| 久久久久久性爱视频| 国产特级毛片AAAAAA高潮流水 | 国产女人高潮视频| 99精品国产户外露出| 少妇特黄一区二区三区| 久久婷婷国产一区二区色| 97精品熟女少妇一区| 日本亚欧爱爱| 欧美日韩一干二干| www.夜夜| 丰满人妻无码一区二区三区 | 精人妻一区二区三区| 在线97在线| 长长久久88视频| 97超碰欧美手机在线| 熟女天天干| 99精品无码| 福利在线观看一区二区| 18禁止看精品中文字幕| 变态综合色| 久久噜| 久久AV无码1区2区3区| 久草网站免费在线观看| 国产精品美女久久久久久网站| 2026国产精品视频| 高潮内射在线| 五月天久久久| 免费强奸av| 偷拍 欧美 日韩| 舔足天天操天天射| 人妻内射一区二区在线视频| 偷拍欧美激情| 日韩三级一区| 九久9精品| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 日本高清熟女久久一区| 蜜臀久久久久久999| 亚洲中文字母在线播放| 日韩性爱视频在线免费观看| 熟妇乱伦一区二区| 999综合网| 欧综合网| 18精品一二区| 97久久久久久久久久| 香蕉免费一区二区三区不读| 97超碰jingpin| 肉动漫无遮挡h在线观看| 亚洲中亚日激情视频| 亚洲污一污二| 大香蕉中文aV在线| 中文字幕乱在线伦视频中文字幕乱码在线 | 强奸抽插av| 精品无码少妇| 乱人乱色一区二区三区免费| 超碰综合97在线| 亚州九九九精品视频| 好吊色一区| 99热精品国产| 99色日| 粉嫩小泬久久久一区二区| 啊啊啊 在线观看| 日韩草久视频| 天美av在线观看| 啊啊啊啊啊啊啊国| 日韩情色视频| 在线观看综合精品亚洲| 91成人精品在线播放| 免费亚洲黄色视频在线观看| 日韩无码精品综合久久| 成人小说视频在线精品欧美| 一本一道久久综合久久| 91精品91久久久久77777| 大香蕉琪琪日本女优不卡| 色偷综合| www久久精品| 久九九九九九九九热| 高颜值美女口爆高潮浪叫| 国产麻豆91欧美一区二区久久婷婷国产精品| 一卡二卡在线播放| 精品97久久| 天天色综合影视网| 91亚洲高清| 9色国产精品一区粉嫩| 国产Av超碰| 国产日韩区| 国产操操日韩三级黄| 一区二区三区欧美激情| 九九色色| 国产精品午夜成人福利| 亚洲欧美在线综合| 99热线麻豆| 国产精品久久久久久久久久久久久久吹 | 99re热| 国产91专区| 欧美春色| 97无码视频在线播放| 一区二区三区视频国产免费| 日韩丝袜二区| 日本在线一二 | 婷婷久久五月| 久久发布国产伦子伦精品| 97超碰逼| 免看60秒涩涩视频| 欧美高清色| 秋霞网—男女啪啪亚洲免费体验区 | 手机在线中文字幕国产| 亚洲 自拍偷拍 欧美| 伊欧美综合视频| 懂色AV一区二区三区| 桃色六月天| 国产精品在线一区二区| 舔足天天操天天射| 精品网站99999| se,,,亚洲欧美| 青青草一本道福利视频| 天天看天天日天天操| αⅴ天堂| 久久一二三四五六七八九区区区 | 久久岛国| 精品国产乱码久久| 波多野结衣AV无码一区| 婷婷AV一区二区三区| 天天弄天天操| 久久久111| 亚洲欧美洲综合| 97超碰人人模人人拍人人| 免费啪啪一级视频| 有码免费观看| 日韩啪啪啪啪啪| 天天看高清麻豆| …亚洲黄色厕厕女女在线播…| 国产 日韩 欧美高清| 婷婷激情啪啪| 久欲AV| 日本成人免费一区二区三区| 99热伊人| 亚洲自拍欧美色综合| 思思热国产高清| 亚洲aV性爱| 蜜桃久久久久久| AV色五月天| 中文字幕三四区| 岛国精品视频在线观看| 夜草欧美| 欧美精品成人一区二区在线观看 | 九九综合| 超碰社区97| 人人操人人干网页| 日本在线不卡v二区| 97天天弄| 人人操,人人液| 免费看日产一区二区三区| 99黄页网站| 99无码狠狠久久| 亚洲成人性| 国产熟女一区二区丰满| 亚洲激情视频| 人干人人人操人人摸| 麻豆久久久久久久久丝袜| 蜜臀一二三区| 亚洲色色探花| 国产天天看| 欧美性爽xyxOOOO| 日本熟妇一区二区三区| 国产欧美日产一区二区三区 - 国产欧美日 | 日韩97P| 97久久视频| 国产日韩中文字幕欧美| 午夜国产乱伦视频| 人人摸人人干| 草B在线| 久久综合国产精品国产| 欧美色图片91| 日韩图色| 久/久精品99看9| av橘色网站| 日韩乱伦视频| 女性91网站| 国产按摩一区二区三区| 四虎国产精品永久入口| 亚洲国产精品99久久久| 操99| 精品国产乱码久久久久久久| 新婚人妻扶着粗大强行坐下| a片亚洲一本通视频| 久久精品国产亚洲妲己影视| 欧美 日韩 国产传媒| 富女玩鸭子一级毛片| 视频在线97| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 激情四射熟女丝袜| 欧洲性爱无码区| 久久九九99| 超碰97国产欧美| 色色五月天婷婷| 超碰在线免费一区二区三区| 人人看人人爰人人操 | 久久久久9| 亚洲毛片久久| 91粉嫩萝控精品福利网站_精品影音先锋国 | 肉丝中文无码高清| 强奸乱伦AV网址| 另类av综合久久| 精品中文字幕一区二区| 欧美91丝袜| 国产视频不卡在线观看| 男人精品天堂一区| 蜜臀操逼黄色视频操的好爽| 大香蕉2017| 色婷婷香蕉| 天天综合网~91| 嗯嗯啊啊视频在线看| 午夜舔阴达高潮视频免费看| 99国产精品久久久久久久成人热| 欧美黑人熟妇精品91| 亚洲 中文 女同| 国产精品美女视频诱惑| 91成人在线| 老熟女乱伦一区| 精品人妻一区春色| 国产精品久久久久av| 校园春色 亚洲| 国产女上位好爽在线| 正在播放国产精品一区| 亚洲久草AV色图| 青青国产精品在线| 久久精品欧美一区二区三区不卡| 婷婷10月天青娱乐| 成人AV素股で擦久久| 欧美成人一级免费电影| 欧美性性性| 大香蕉99热| 国产92麻豆天美精品色欲5| 91精片| 99色日| 开心五月婷婷激情| 色欲Av人妻精品一区二| 97在线日韩中文字幕| 91亚州日韩高清| 蜜乳av一区二区| 久夜操| 国产又大又粗又长视频在线| 国产懂色精品国产av| 大香蕉伊人网| 欧美 日韩 婷婷 五月| 91Chinese在线| 日本天天干天天操一区| 美女大乳久久久久久久女人18| 亚洲女毛多水多21P| 好一吊区二区| 人妻密肉在线观看| 九九视频黄色片| 欧美另类天堂| 久久久久久91香蕉国产| 五月婷婷激情综合| 91人精品妻入口| 色色青青久久| 青青草亚洲一区| 成视频在线观看免费看| 大香蕉免费3| 九九热精品| 欧美最婬乱婬爆婬性视频 | 国产精品亚洲一级av第二区| 欧美线天码中字| 久操高青| 人人色人人操在线| 国产人妖视频一区在线观看| 91操熟女| 天天舔日美女视频| 亚洲官网在线| 丁香六月婷婷久久综合| A V视频日本| 国产综合日韩伦理| 91精品操美女| 四虎视频在线观看| 夜夜草网站| 亚洲字幕一区二区| 亚洲色宗合| 白嫩妹子国产骚| 国产毛片精品一区二区色欲黄A片| 狠狠久久手机视频精品| 超碰久久精品| 日韩在线女优天天干| 国产女人操逼视频| 久久久亚洲熟妇熟女| 97国产精选| 青青草久草AV| 伦在线97| 久草久热| 97超碰色五月| 性吧在线视频| 久久久久9| 一级久久性爱视频| 人人性爱视频免费| 起碰97| 日韩啪啪视频| 色臀AV| 九久久精品| 欧美性视频二区三区| 天天干一区二区| 日韩人体偷拍| 狠狠操天天干| 亚洲精品日韩国产欧美| 一区操逼日比视频| 亚洲精品一二区| 国产黄a三级三级三级av在线看| 黄色av播放免不| 青青草九九九九九| 亚洲午夜免费狠狠干| www.婷婷六月天| 日韩无码黄色片| 国产精品久久久久亚洲av| 日韩人妻播放| 亚洲欧综合另类无码一区| 久久久久亚洲Av无码专区老牛影视| 成人情色综合网| 国产黑白丝在线| 久久久久96| 久热99999| 国产一区二区在线播放量| 黄色免费一级在线毛片| 国产高清视频无码在线| 99久久久无码精品国产人| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 亚洲图片欧美| 精品人妻中文字幕高清| 国产在线视频二区| 日本三级一区二区 在线| 96久久精品一二三区色欲| 强奸a片网| 亚洲无套久久嗯嗯| 久久老子无码午夜伦不卡| 伊人网av| 天天爱天天韩国日本牛牛牛牛 | 成人免费福利在线观看| 久久九九视频九九视频| 99精品欧美一区二区三区桃色| 欧美日韩性爱无码| 黄色AAAAAAAAAAA大片| 人人贴人人摸| 思思热国产高清| 影音先锋日本一区二区| 色呦呦呦在线观看视频| 青娱乐日韩无码| 国产后入精品| 中文字幕人妻色偷偷久久皮 | 九久9精品| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 1024亚洲中文字幕久在线看片你懂的 | 色呦呦、国产精品| 亚洲欧综合另类无码一区| 日韩国产精品人妻无码久久久| 国产一区在线观看无码AV| 欧美东京热精品A∨| 婷婷五月在线视频| 熟女一区二区| 亚洲国产青青| 97国产|免费| 午夜男女爽爽爽影院视频| 懂色中文一区二区三区| 五月丁香社区婷婷日韩欧美精品影院 | 婷婷丁香五月综合| 精品人妻一区二区三区-国产精品| 91视频综合在线| 天天综合网~91综合网| 久久久青青草| 国内毛片欧美香蕉精品| 国产色精品午夜大片| 啊啊啊啊啊在线观看网址 | 超碰视97中文| 精品人妻一区二区三区四区不卡在| 狠狠色狠狠色狠狠五月| 爽爽淫人网| 欧美综合传媒| 综合久久少妇中文字幕| 伊人五月天激情| 国产av高清版| 男人的天堂日韩| 久久伊人最新网址视频| 韩国三级理论在线| 色九九九九久| 欧美色色人| 大香蕉78| 伊欧美综合视频| 人人澡人人爽人人精品| 职场同事知名国产国产精品久久欧美日韩 | 日本不卡三级网在线播放| 亚洲欧美一区二区三区在钱蜜桃| 天天干天天爽| 久久社区一区二区三区| 欧美久久伊人| 亚洲人成色9999精品久久| 欧美日综合| 国产蜜臀精品一区免费尤物| 综合久久久久久久久91| 欧美天堂第二区| 中文字幕 国产 精品| 蜜臀久久99精品久久久电影| 天天看特黄的免费网站| 超碰95| 国产精品呦一区二区三区| 成人国产精品三级A片| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 黄页av| 亚洲欧洲日韩国产自在线| 人妻在线中出视频| 久久久999| 99re视频这里只有精品| 99e久久国产精品| 一区二区三区精品黑丝白丝酒店对鸡 | 在线天堂999| 99在线观看视频在线高清|