久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码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
返回資訊列表
色情综合| 玖玖爱在线视频免费观看| 俄罗斯及免费在线看| 伊人久久综合精品欧美| 欧美大战久久久伊人| 亚洲全色网| 91黑人无码激情在线| 九九九九免费高| 欧美九九九| 欧美的性爱网站免费| 99热这里只有精| 狠狠图片青青草| 神马久久久久久| 澳门特级毛片免费观看| 人妻少妇精品久久久| 91久久| 日韩性爱网址| 97伊人超碰| 黄片免费久久久久久久| 96免费视频在线| www.av家庭乱伦| 亚洲无码色| 人妻熟女一区二区在线视频| 99热国产| 探花精品 一区二区| 蜜臀av在线播放一区二区三区| 国产夫妻性生活视频| 久久久亚洲欧美综合| 少妇诱惑视频| 日日噜噜夜夜狠狠视频无| 91人妻视频| a亚洲欧美色欲| 青青草视频久久久久| 久久久蜜桃臀无码视频| 久久超碰免费的| 2021国产成人精品久久| 九区国产| 图片区小说区| 一二区在线观看视频| 中国探花熟女| 东京太热男人的天堂久久久| 欧美精品成人亚洲| 人人看黄色视频| 久九干| 国产黄色影片在线观看| 日本新免费二区三区| 伊人影院日本| 干B| 黄页视频网站野外| 国产97/欧美| 亚洲天堂 视频你懂的| 欧美日韩人妻精品一区二区三区| www鬼畜国产男人的天堂| 国产熟妇 码视频户外直播| 亚洲日韩欧美一区二区| 偷看洗澡一二三区美女| 香蕉欧美| 人妻素股| 超碰79人人乐| 91快色色色色色| 熟女熟妇一区二区三区视频| http://qxhbdz.com| 精品无码一区二区三区| 亚洲 欧美 第一页| 日韩久久超碰色| 久久无码成人| 色妇综合网| 夜夜夜久久| 99在线免费公开视频| 国产97综合| 97超级久久强资源| 国产一区二区视频在线播放| 思思热在线视频免费| 久久99精品九九久久久婷婷| 蜜臀国产AV中文字幕| 精品美女久久久久| 狠狠入| av在线浏览| 国产精品嫩草影院免费| 91五十路| 国产精品夜夜夜| 1区2区3区在线视频| 一级日本牲交大片好爽在线看| 欧美同性恋 的搜索结果 - 91n| 欧美欲色| 操一区| 国产精品4p在线观看| 99精品无码| 青青色综合| 婷婷色影院| 国产精品久久天天干| 91精品国产乱码| 狠狠激情综合狠狠操中文字幕| 日躁天天爽爽| 精品美女人人干| 黄页大片在线观看| 国产精品久久久鸭无码的功能| 久久精品国产精品一区 | 亚洲精品九九九| 91少妇香蕉久久精品| 亚洲欧洲另类| www成人啪啪18秘 免费| 人人操人人摸人人骑| 国产熟女自拍| 热热色AV| 999九九九九国产动| 青青草密桃在线播放| 国产 v乱码一区二| 日韩免费在线视频观看| 久操操AV电影| 视频一区二区免费在线| 亚洲国产综合视频| 9Ⅰ超碰| 熟女网站最新| 天美传媒av一区二区| 婷婷成人久久久精品| 免费精品福利在线观看| 亚洲成a人片在线观看中文!!!| 国产无码精品久久久久久| 色777999综合| 色欧洲97| 91无摭挡| 97国产|免费| 天天躁日日躁狠狠狠躁| 国产外初女出血视频| 福利一级版子| 天天激色| 成人久久久精品| 婷婷精品国产一区二区三区日韩| 欧美中文字幕一区 | 色综合av男人天堂| 日本一区二区三区四区免费观看| 91强奸乱轮| 日本国产亚洲一区在线观看| 日韩精品在线视频,日韩精品……| 天天综合网91| 欧美精品二区视频在线| 青青久久手机线视频| 天天操夜夜嗨| 9999免费精彩视频| 天天干少妇| 丁香激情网| 亚洲另类久操网| 肥臀熟女福利视频一区二区| 91 亚洲情侣偷拍 久久| 亚洲狠狠入| 天天cao在线| 亚洲欧美另类激情小说| 操日韩第| 日本精品成人无码| 99热97| 久偷拍| 亚州综合图片| www.人人摸在线视频| 欧美日韩小说| 国产亚洲精品无码三区| 一级特级aaaa毛片免费观看| 色5月婷婷| 蜜臀av中字字幕网站| 人妻精品一区二区全免费| 97在线青| 久久内射| 日本视频一区二区三区| 男人的天堂2019AV| 一本大道综合伊人精品热热| 人妻少妇无码| 美国日韩黄片| 深田咏美亚洲精品福利社| 天天流夜夜操| 亚洲第91页| 久久久啊啊啊| 国产av强奸美女| 国产精品熟女乱伦| 大香蕉 222| 美女骚尻视频| 中文字幕精品探花视频| 亚洲最大网站av| 青娱乐亚洲热| 97 国产精品| 精品无码久久久久久久久果冻糖心| ..日韩av毛片精品久久久| 亚洲成av人片色午夜乱码| 婷婷国产精品九区| 夜夜爽夜夜摸夜夜操免费视频| 色欲无码人妻日韩欧美精品| 日韩乱码Av| 日本天天干天天搞一区| 蜜臀久久99精品久久久久久成人小说| 国产最火爆久久国产网站网站| 精品一区二区人妖| 91美女看B| 97免费视频在线| 日本操大逼| 大香蕉操久久| yazhouzaixian| 无遮挡男女激烈动态图| 日韩亚洲美女一区久久| 国产自偷| 久久伊人亚洲AV无码网站| 欧美综合区| 久草毛片电影怡| 亚洲91色| 亚洲操逼网| 亚欧美综合网。| 老熟女综合| 精品国产乱码久久久久久口爆网站| 东京太热久久久| 67914在线兔费成人视频| 日本成人A片免费看| 混色激情av| 性高潮久久久| 婷婷视频在线免费观看| 午夜欧美J进J出白浆流出久久久| 九九热三级片| 中文字幕一区日韩精| 精品一区二区三区四区外站 | 熟妇激情| 99在线免费公开视频| 欧美日韩丝袜 | 一本一道久久综合久久| 人人操人人摸人 | 精品九九九| 强奸乱亚洲| 黑人精品久久97| 无码久久国产| 中文字日本乱码| 欧美亚洲丝袜人妻制服中文99| 特级丰满少妇一级AAAA爱毛片| 亚洲码和欧洲精品激情系列| 操b在线观看| 人妻激情另类| 亚洲狠狠入| 国产AV超爽| 人妻五十路在线| 少妇人妻好深太紧了vr91| 97精品国产97久久久久久户外免费| 理论久久婷婷网8| 手机在线人成免费视频| 99热18这里只有精品| 国产精品久久久久久久AV大片| 亚洲AV乱码专区国产噜噜亚洲 | 久久9亚洲| 亚洲日韩美女丝袜美腿人妻视频| 无码99| 日韩啪啪视频| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 亚洲 欧美日韩 另类| 成人片视频| 又粗又长又爽在线观看| 综合欧美日韩在线| 探花精品视频| 日美免费黄片| 999熟女精品| 日本欧美一区二区三区免费| 国产精品天干天干综合网麻豆| 国产男女边吃边摸视频网站| 婷婷五月天久久精品视频一区二区三区 | 免费A V在线播放| 少妇丝袜在线观看AV| 精品一区二区综合熟妇| 91热色| 99ri精品| 超碰在线91| 天天爱天天韩国日本牛牛牛牛| 一区二区影视| 国产人伦精品一区二区三区| 亚洲色欲天天天堂色欲网女| 亚州Av天美传媒| 日本性爱欧美性爱| 97操碰| 日本 欧美 亚中文字幕| 国产精品美女视频诱惑| 日韩无码AB| 久久肏大逼| 国产乱码精品久久久久久| 亚洲成人性| 人妻 制服 日韩 中文 在线| 视频国产精品未满十八禁止在线观看| 国产成人啪一区二区| 天天日日夜夜| 国产啊v在线免费播放| 欧美激情黑人| 午夜精品久久久99| 久久精视频美日韩在线视频| 天天操天天舔| 福利天堂| 国产一区96在线| 老熟女搡BBBB搡BBBB视频| 欧美白嫩女HD| 澳门特级毛片免费观看| 无码137片内射在线影院| 天美传媒av在线| 五月丁香啪啪啪| a片久久久久久久久久久久 | 东京热男人的天堂| 日本欧美m v精品网站加| 日韩女模中文造逼| 大香蕉欧美| 久久久久久久六六 | 色牛牛AV| 日本操逼视频不卡直接放| 蜜桃臀一区二区三区久久| 国产原创自拍| 日本丝袜人妻内射| 久久精品国产亚洲5555| 99爱爱| 欧美色图亚洲色图成人在在线| 成人亚欧免费视频| 欧差乱伦二三| 大香蕉草草| 综合网欧| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 懂色av色欲av蜜臀av| 亚洲交性| 国产91丝袜在线播放蜜月| 91美女视屏| 日本中文字幕在线视频| 天天色天天干天天射| 精品视频一二三中文| 亚洲诱惑天堂| 少妇内射视频| 天天天乱色综合全| 九九九久千久久激情蜜桃在线看 | 91 国产丝袜在线放观看| 一级黄色牲爱A级片| 久久狠狠色噜噜狠狠狠狠97| 99re6在线视频播放免费精品| 一区二区三区色综合| 暖暖精品二区三区观看| 日本有码久久| av在线资源| 国产亚洲色婷婷久久99精品91葵花宝典 | 亚洲第一男人天堂| 欧美91视频| 亚洲学生妹高清av| 日本不卡在线二区三区| 超碰视97中文| 日韩资源网| 国产精品久久久777| 五月久久HDAV| 9久综合网| 亚洲综合色网| 亚洲综合另类| 丰满人妻一区二区三区免费,| 亚洲精品日日夜夜52| 国产网红精品| 国产高清在线观看欧美| a级理论午夜日本| 精品中文字幕第一页| 2018天天日天天日| 久久在线观看免费视频| 中日韩免费看男女操逼大全| 久久女人| 白嫩少妇| 男人女人18禁片免费看网站| A级片日韩欧美国产欧美视频精选观看| 国产精品九九九| 欧美性色网| 亚洲伊人成综合成人网| 最新日本中文字幕| 丰满人妻一区二区三区在线| 欧美人妻精品| 国产一区二区三区不卡手机在线| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | WWW美腿丝袜香蕉中文| 伊人久久亚洲色欲综合网站 | 五月天婷婷欧美三区| 人妻天堂综合网| 国产一区二区三区中文字幕| 香蕉一区二区三区在线视频| 欧美午夜色妇色鬼| 日韩精品电影| 色偷偷超碰亚洲| 自拍六区| 在线观看成人性爱免费小视频| 在线免费观看日韩一区| 天天日B夜夜干B时时操B| 91狠狠色丁香婷婷综合久久| 国产成人资源| 99精品网站| 亚洲色图综合网| 亚州精品人妻一二三区| 人妻少妇精品无码专区二区密桃| 无码天堂| 精品成人亚洲午夜电影| 强奸乱伦动态污图免费| 另类图片五月| 日韩中文字幕宗合在线| 91 丝袜在线播放| 国产最火爆久久国产网站网站| 欧美日韩不卡a片| 国产色呦呦| 一区二区三区在线资源| 一个人免费视频观看在线WWW| 脫衣舞一区二区三区| 亚洲欧美激情在线视频| 91蜜臀在线久久久久| 夜草欧美| 亚洲 欧美综合| 成人无码在线超碰网| 精品一区二区综合熟妇| 99在线精品视频| 热久日综合| 国产又粗又长的视频| 97在线免费视频| 操逼片国产| 精品区9| 97这里只精品| 国产精品午夜AV完会免费| 激情网色| 久久9 9 9精品| 久久精品综合| 20cm女自慰在线日韩欧美| 欧美国产伊人久久久久| 小草精彩毛片| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 亚洲欧美综合网 | 岛国黄| 男人精品区| 高清无码一区二区三区| 丝袜熟女2P| 久久久久久人| 亚洲国产尤物yw在线观看| 人妻少妇精品一区二区三区| 亚洲 欧美 综合 91| 大学生美女口爆| 日韩av不卡在线观看| 精品十三区| 凌辱美少妇久久aV| 久久久精品视频免费观看| 超碰激情808| 婷婷国产精品一区二区| 五月天玖玖资源站| 伊人国产视频| 草草草视频在线免费看| 久久人妻丝袜一区二区三| 伊人少妇久久久| 久久久99久9| 久久精品人妻一区二区三区| 亚洲AV无码AV吞精久久久久| 自拍丝袜美腿人妻| 国产h小视频在线观看免费| 亚洲综合色婷婷| AV色图| 精品久久久久久中文字幕三区| 97色冈| 清纯唯美综合| 开心五月天激情网| 天天综合~91| 五月丁香拍拍激情综合三级| 九一综合网| 国产精品原创巨作?v网站| 少妇被玩视频二三区| 天美传媒AV在线| 国产原创剧情在线丝袜| 国产中文字幕在线观看| 综合影视国产无码| 国产风韵犹存熟妇三区| 国产精品一二三在线看| 超碰久在线天天做| 国产欧美一级在线观看| 97频视在线| 操逼啊啊啊91| 69久久久久久久久久久久久| 国产精品黄色三级av| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 一级特级aaaa毛片免费观看| 91熟女少妇| 午夜无码精品免费看性色| 加勒比伊人综合| 涩涩这里只有精品视频| 麻豆AV96熟妇人妻| 亚洲第一免费视频| 国产性爱欧美性爱在线| 欧日a| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 人妻-91porn| 精品少妇一区二区| 亚洲图片偷拍视频区| 久操电影网| 五月激情在线| 26uuu久久| 四虎884a| 久操网视频| 尤物视频偷拍免费| 九九热视频在线观看| 91亚洲人| 日han少妇无码| 岛国黄| 亚州欧美综合| 99国内精品| 黄色香蕉视频网站一区| 亚洲日韩乱码中文无码蜜桃臀网站 | 色999五月色| 日韩小电影| 密臀AV在线| 嫩草影院在线观看精品| 午夜精品久久久久久久第一页按摩| 日日干夜夜干| 超清福利精品视频在线| 人人九九精| 长长久久免费视频| 日韩综合第八区国产精品| 婷婷综合五月天| 九九九精品成人免费视频小说| 99综合网| 一区二区三区成人高清视频| 中韩中文字幕在线观看| 91女人的网站| 国产尤物AV尤物在线观看不卡| 国产精品久久久亚洲第一牛牛_在线观看| 美女啊啊啊啊啊啊啊| 在线免费观看日韩一区| 九九综合网| 久草综合京东| 黄片直播三级黄片两女一男| www国产无码| 伊人四虎综合| 激情文学欧美| 天堂种子在线www网资源| 九九九久久久| 午夜九九| 五十路熟女工口| a在线观看| 日韩中文字幕国产| 久久风骚城市| www.欧精品| 福利色色| 自拍偷拍草一草| 亚洲欧洲无码一区夜| 91chinese在线| 天堂а√在线最新版在线| 尤物视频新赏网鲜网色诱网| 99九九久久| 九九在线视频| 2020国产精品| 国产一在线观看| 国产60页| 清纯唯美综合亚洲| 天天看高清麻豆| 美女露胸露尿口| 亚洲一区二区性爱电影| 欧美日韩色综合网| 人人操人人摸人人骑| 欧美日韩色| 久久久久久久久国产| 天综合网| 欧美日韩91| 成人性爱高清视频免费看| 欧美日产国产在线成人第一区| 日本色日夜干| 色综合大香蕉| 中文字幕精品亚洲熟女| 欧美色图 人妻| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲色图欧美视频| 午夜一区二区三区国产| 一区操逼| 狠狠色噜噜狠狠狠狠2018| 亚州综合在线| 91色香| 色香综合| 黄页av| 日本精品一区二区三| 射丝袜大香蕉| 日本好吊色视频| 蜜屁Av| 日本黄色裸日本黄色裸体| 很黄很污的免费网站| 国产成人网址| 91九九| 俺去也婷婷| 亚洲av在线免费观看| 可以看的av| 在线只有精品| 黑丝少妇在线观看| 骚货人妻偷情自拍在线视频| 中文字幕在线免费观看视频| 搡老熟女老女人老熟妇免费视频| 96久久精品一二三区色欲| 久久精品日韩| 欧美人与性动交a美精品| 亚洲人妻在线一区| 国产精品自拍xxxx| 国产综合网站在线播放 | 久久精品日韩专区免费观看| 久久久内射良家| 毛片麻豆91糖心精品毛情片| 日本高清一本二本免费不卡| 激情婷婷黑人91| 中出在线视频| 99久草| 亚洲成人贴图| 精品国产三级av韩国在线| 亚洲无码超碰免费| 免费一级黄色录像影片| 色情乱伦AV| 欧美日韩国产三级黄色| 强奸乱伦αv片| 九九亚洲| 精品色色| 日本裸体久久色噜噜| 久久婷婷亚洲欧| 欧美久久婷婷| 欧美专区17页| 东北女人操逼| 91午夜无码| 中文字幕亚洲在线一区 | 艹少妇网站| 大香蕉人妻| 91n美女视频| 欧美综合制服在线| 97在线观看免费| 91在线免费精品视频| 国产在线激情视频| 91精品国产麻豆国产自产在| 综合网,亚洲,欧美| 日日夜夜国产综合| 天天日天天干天天摸天天操| 国产真实子伦对白| 日韩美女操b| 99爱在线视频| 伊人久久大香线综合无码| 亚洲亚洲亚洲天堂天堂| 亚洲天堂一区| 精品一区二区综合熟妇| 欧美亚洲玖玖玖| 色网1| 丰满欧美放荡少妇在线| 2018天天日天天日| 亚洲欧美经典一区二区| 欧美精品偷拍| 色97干| 色哟哟AⅤ| 国模精品一区二区三区苹果色戒 | 黄色大片视频在线免费看| 91爆操视频| 精精夜夜| 五月天精品| 国产a片操逼| 操操碰| 亚洲网污污污污| 亚州欧美色图| 国产又操| 欧美91精彩| 久久久久女教师免费一区| 91 亚洲情侣偷拍 久久| 国产日本久久免费精品| 好看的久久不射无码影视影院| 五月天伊人网| aaaa黄片| 日日干男人的天堂| 久久久久99999| 日本性爱少妇| 另类av综合久久| 国产美女高潮| 亚洲天天艹| 欧美韩日精品99综合| 国产精品久久久久久久AV大片| 亚洲欧美日韩综合在线尤物 | 久久久久久久唑| 久久久国产三级黄色片| 久久久久元码视频| 国产一区二区免费福利片| 天天爱天天韩国日本牛牛牛牛| 欧美日韩精品青青| 狼狼色丁香久久婷婷综合五月| 国产精品久久发布| 色综91| 亚洲精品日日夜夜52| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 少妇熟女一区二区三区| 激情专区综合| 中出人妻中文字幕91在线| 18禁中文字幕| 亚洲男人天堂2016| 黄色视频60分钟| 欧美极品少妇交| 久久久久少妇| 国产少妇与亚洲av| 超碰九区| 欧美专区第一页| 欧美加勒比| 床上啊啊啊一区二区三区| 国产精品无码av在线 | 久久国产成人精品国产成人亚洲| 丁香五月影院| 丝袜视频网国产90| 淫荡少妇免费| 免费成人在线熟妇网| 久久久久人妻二区精品叶可怜| 五月天久久婷婷亚洲| 中文字幕三四五区| 中文字幕黑人大片| 爱爱啊啊啊| 九九热精品在线| av网站在线看| 日韩激情视频| 亚洲国产尤物yw在线观看| 亚洲欧美日韩有码| 国产精品成人福利在线| 九热超碰| 五月丁香综合| 久久久久久久久一区二区三区| 六月丁香五月婷婷| 亚洲一区二区在线观看91| 香蕉一区二区三区在线视频| 国产精品视频自拍在线| 日本新免费二区三区| 国产综合永久精品日韩鬼片| 亚洲成av人片色午夜乱码| 激情视频图片| 日韩av一级黄片| 超踫中文字幕| 浓厚中出中文字幕在线| 久久夜嗨| 亚洲精品啪视频| 亚洲激情深爱文学小说网站| 久久黄黄| 国产超碰AV在线精品| 少妇免费视频| 国产日韩区| 色五月AV在线| 长长久久88视频| 黄色视频高清无码网站| 国产人妻一区二区三区欧美毛片| 色乱二区| 97色综合中文网| 国产视频一区二区在线| 色官网色综合| 欧美亚洲首页| 欧美高潮在线| 手机在线人成免费视频| 精品人妻少妇| 久久久久久久久九九久孕交| 人妻乱仑一区二区三区| 欧美综合第一页| 自拍视频大全亚洲专媒视频/一区二区三区| 人妻 丝袜美腿 中文字幕| 亚洲熟女人妻中文字幕一区二区 | 俺去也婷婷| 一区二区三区美女超清| 天天草AV| 蜜色网色哟哟| 大香蕉免费3| 午夜福利合集| 国产11页| 一区二区视频你懂的| 免费强奸av| 精品人妻一区二区三区日产乱码| 天天色怡春院| 久久女婷| 26UUU欧美激情一区二区| 少妇内射视频| 精品国产一区二区久久| 91精品国产高清久久久久久,亚洲成人 | 久热伊人99re| 亚洲伊人a线观看视频| 国内一级精品| 欧美综合网1| 91久久久久久久久久久| 久久‘黄片视频| 97视频在线播放| 五月天欧美色图| 欧美性,色九九| 69人妻精品一区二区绯色| 日本色色色视频| 操逼无码操逼| 男人的天堂久久| 精品乱码在线观看| 青青草十区九区爱夜| 成人AV在线电影| 日韩亚洲中文字幕在线| 秋霞一集毛片观看| 欧美性夜| 毛片麻豆91糖心精品毛情片| 欧美色图亚洲特色| 男人的天堂亚洲| 看一级黄色视频| 91丨国产丨白浆秘 洗澡动漫| 高精欧美色| 色香91| 久久久不卡区一区二区三区久久久| 男人的天堂不卡一区二区| 国产亚洲日本精品在线| 欧美老妇综合网| 欧美三级免费伊人| 久久啊哟| 欧美精品四区| 色婷婷99| 国产亚洲精品农村妇女| 人人操人人插 - 百度 - 百度| 91大香蕉伊人| 五月天AV资源| 欧美色图自拍| 九热超碰| 99RE在线视频精品,这里只有精品| 日韩AV电影网站| 色激情五月天| 午夜大香蕉| 亚洲强奸乱伦影视网| 日欧亚洲二三区大片不卡| 国内偷自视频区视频综合| 精品人妻一区二区蜜桃视频 | 男生通女生屁股| 自拍第一页| 91久久精品美女高潮喷水| 国产丸一视频| 一区二区三区在线日韩影院观看| 欧美在线啊啊啊| 香蕉久久精品| 精品亚州18| 91网18| 精品v1区| 台湾一区国产高清在线| 亚洲欧洲日本精品中文a∨| 伊人丁香五月婷婷| 日韩性爱毛片操骚逼| a级免费在线观看| 韩国三级一线观看久| 国产亚洲深夜激情| 神马久久久久久伦理片| 两性综合网| 婷婷丁香久久| 丁香五月影院| 中文字幕av色| 国产福利夜| 丝袜性亚洲| 六月丁操逼| 少妇专区一二三四五| 亚洲另类久操网| 亚洲蜜臀懂色| 激情黄色五月天| 午夜啊啊| 亚欧色图在线激情| 欧美人人操人人插| av绯色| 欧美性爱在线无码| 992这里有精品| 久久精品72| 亚洲s色图| 香蕉精品二区二区| 成人精品无码| 天天操天天干一区二区 | 欧美草草高清日韩视频| …亚洲黄色厕厕女女在线播…| 日本孕妇一区二区视频操逼免费看 | 五月婷婷丁香| 欧美综合在线91| 丝袜美腿91| 秋霞色色影院| 强奸乱伦中文字幕AV| 操91| 日本不卡卡一区| 20cm女自慰在线日韩欧美| 性爱Av免费| 五月天婷婷色色| 99啪啪视频| 午夜九九| 欧美传媒| 这里只有精品视频在线| 区一二区日韩亚洲乱码av电影| 亚洲诱惑天堂| 国产一级内射高清视频 | 六九九九| 超碰碰97| 少妇色综合| 91n欧美| 在线观看成人性爱免费小视频| 国产做?爰片久久毛片?片美国| 啊啊啊啊啊啊啊国| 午夜精品人妻二区三区| 欧美999| 操逼网免费无码视频| 久久综合精品一区二区三区| 极品出轨视频网站| 日韩操啪| 日本欧美国内在线| 97 国产一区| 久久爱97| 中文字幕亚洲热播人妻| 色综合91| 欧美综合天堂| 国产自产自拍| 五月婷婷六月天| 欧美亚州色的图| 国产精品午夜AV完会免费| 亚欧性爱ab| 天堂国产AV| 久久春色| 婷婷丁香六月天| 久久精品视| 九九热三级片| 天天躁日日躁AAA片李宗瑞| 中文字幕免费观看| 亚洲高清欧美总合| 免费强奸av| 国产60区。| 蜜臀久久99精品久久久| 性爱av网站| 曰韩操B| 射丝袜高跟鞋99| 香蕉大久久久| 亚洲,日韩,欧美,成人播放| 精品视频123区小说区| 婷婷午夜清品久久久久久久性色视频观| 免费啪啪一级视频| 亚洲天堂情色| 精品人妻一区二区三区四区石在线| 色婷婷亚洲婷婷| 久久精品无码熟妇一区二区三区视频导航 | 美日韩一二三区| 欧美极品| 爱爱动态120秒| 一本久道久久综合狠狠爱一密臀精 | 老司机老司机午夜影院| 啊啊啊好舒服视频在线观看| 综合伊人激情| 国产亚洲在线观看| 97国产精品在线观看| 國產尤物AV尤物在線觀看| 精品一区二区三区四区外站 | 婷婷五月花| 97超碰精品图片| 亚洲精品成人激情在线| 97精品国产手机| 人人干黄色| 激情亚洲天堂| 国产精品蜜臀久久久久无码AV| 麻豆久久久久久久久丝袜| 亚洲国产综合视频| 日韩特级毛片免费观看全集| 亚洲中文字幕妇伦久久| 日韩极品无码B| 色婷婷综合久久中文字幕雪峰| 亚洲巨爆乳一区二区三区四季网| 青青草十区九区爱夜| 人人看人人插| av线电影| 免费观看的黄色的网站| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 亚洲国产一区二区入口| 精品无码一区二区人妻久久蜜桃| www.91理论| 国产吹潮女在线观看| 婷婷91| 国产精品播放| 一区二区首页| 国产人妖的免费的视频| 操逼999| 强奸乱伦av电影| 欧美爱国产综合、| 欧美性爱十八禁| 加勒比综合在线| 99热这里都是精品| 亚洲 无码 偷拍| 干B| 天天做日日爱夜夜爽| 一本一道久久综合久久| 天天干美少妇一区| 中文字幕高清精品一区| 青青草字幕AV| 韩国黄色片精品久久久| 精品一区二区2| 久久久精品国产亚洲伊人| 丁香五月激情综合| 大二网站亚洲| 青青草中出视频| 无码99| 黄色成人网久久久久久| 欧美亚洲宗合色性图| 亚洲日本韩国在线| 久久精品| 精国久久一区二区三区98| 97色色婷婷| 亚洲最新Av| WWW美腿丝袜香蕉中文| 26uuu欧美| 黄片qw| 久草色在线观看| 欧洲综合视频| 91色人妻| 国产sv美女内射| 亚洲色图欧美色图制服丝袜| 成人性爱美曰韩| 资源新线在线天堂| 亚州色图欧美| 99在线免费视频| 亚洲精品乱码线路中文字幕| 91欧美网| 大香蕉十区| 亚洲一区二区精品福利| 国产精品美女| 精品九九九九九九九九九| 婷婷精品| 国产精品久久久久久照片| 国产三级片在线观看| 97 国产一区| www九九热| 中字幕人妻一区二区三区| 超碰精品人妻狠狠干| 欧美少妇大量自拍视频在线观看| 国产女人操逼视频| CCYY草草影院地址入口| 精品视频久久区| 亚洲限制级在线| 欧美在线干| 久干网| 97九色人妻| 国产精品网址| 国产美女在线精品免费看| 无码九九| 久草热制服丝袜在线观看 | 国内精品久久久久影院亚洲| 国产v片在线免费观看| 狠狠爱夜夜| 日日干夜夜欢| 大香蕉99热| 丝袜熟女2P| 精品人人插人人操| 啪啪视频亚洲第一| 中国人高清www色视频免费| 亚洲精品白丝| 男插女青青影院| 日韩熟女精品无码专区一区二区| 丁香五月色| 精品一区二区人妖| 在线无码视频| 国产主播福利| 老司机福利青青草| 亚洲a色| 揉揉揉夜夜| 超碰这里有精品| 蜜乳av一区二区三区四区不卡| 欧美五区| 日韩AV中文字幕电影| 丁香五月成人| 操高情无码| 乱论91| 亚洲一区二区三区中文字幕| 综合色久欲| 亚洲成人久久美女| 免费簧片在线观看| 午夜偷拍久久熟女| 国产成年精品高清在线观看91| 97精品免费| 日韩情色一区二区| 熟妇人妻精品一区二区| 亚洲欧美精品91| 乱伦系列一区二区| 99ri精品| 99re久久| 欧美日韩999| 国产成人无码网站在线视频| 日韩丝袜二区| 大伊香蕉在线视频免费| 亚洲国产av中文字幕久久| 男女猛烈无遮掩视频免费软件| 乱操乱伦AV| 无码不卡八戒| 精品无码欧美三级| 另类图片综合| 国产精品人妻无码久久久互動交流 | 乱伦av麻豆| 亚洲一级特黄大片在线播放91| 性饥渴少妇av无码毛片| 日韩激情毛片一级久久久| 国产极品精品美女视频| 国产成人无码啪| 中文字幕狠狠玩| 色官网在线| 中文字幕成人| 丰满人妻一区二区三区| 东京热男人的天堂网| www四虎| 国产精品密臀网在线观看| 色色色色色色色色综合| yazhouzaixian| 男生通女生屁股| yazhououmeizongya| www男人天堂| 国产精品久久久久久久久久久久久久吹 | 欧美一级A一级a爱片久久| 欧美一级黄色免费专区| 十八禁av无码免费网站APP| 久草免费福利在线播放| 99久久久无码国产精品性男| 欧美性爱五月天| 久久天天躁日日躁狠狠躁 | 欧美色人| 91深夜夜| 蜜乳AV色欲AVAV无码| 色五月激情网| 欧美亚综合色图| 操逼短片| 啊啊啊啊啊啊在线| 国产传媒午夜理伦精品| 亚洲日本天堂| 999精品女人| 国产成人 综合亚洲 天堂| 免费一级精品啪啪视频| 操逼逼无码| 人妻在线中出视频| 丰满人妻一区| 天天激情综合站| 青娱乐久久艹| 小泽玛利亚一二三| 99蜜桃臀久久久欧美精品网站| 一本一道久久综合久久| 国产精品不卡一区二区三区av| 在线a v| 激情深爱五月天| 久久久久久久久久久97| 超碰久久网| 啊啊啊啊啊啊好多水| 无码精品人妻一区二区三区妖精| 99综合网| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧美欲色| 国产超碰97| 日日躁夜夜躁狠狠躁超爽| 综合伊人激情| 亚洲欧洲综合视频在线| 女色视频社区| 玖玖超碰熟| 超碰精品国产无码| 蜜臀AV秘一区翔田千里| 九九热精品| 三级网站超变态精品| 精品日日人妻| aaaa少妇高潮大片| 人妻密肉在线观看| 一本色道久久综合亚洲二区三区| 韩国一级做a久久久久| 久久 国产精品 一区| 精品视频专区| 国产精品美女| 秋霞一级视频在线观看免费| 久久久影院| 久久久工口| 久久久96精品| 亚洲欧洲日韩天堂av| 亚洲国男人的天堂| 亚洲AV无码AV吞精久久久久| 俺去久久| 青青久草| 亚洲无码免费看| 9色在线| 无码操逼天堂| 午夜乱轮操逼视频免费看| 97国产成人精品免费视频| 啊啊啊97视频| 91国产丝袜白虎| 97在线观看免费视频| 女人午夜视频777| 麻豆精品A片免费观看| 香蕉99秘 一区精品蜜桃臀| 午夜色婷婷| 欧美日韩美女精品久草一区二区三区| 久久国产在线一区二区|