久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

MicroPython玩轉(zhuǎn)RP2040 DMA:寄存器級(jí)內(nèi)存拷貝實(shí)戰(zhàn)

MicroPython玩轉(zhuǎn)RP2040 DMA:寄存器級(jí)內(nèi)存拷貝實(shí)戰(zhàn) 把 MicroPython 和 DMA 放在同一句話里很多人第一反應(yīng)是懷疑MicroPython 不是靠解釋器跑字節(jié)碼的嗎怎么可能碰 DMA 這種底層外設(shè)我一開始也這么想直到有個(gè)項(xiàng)目要把幾百 KB 的音頻數(shù)據(jù)從一塊緩沖區(qū)搬到另一塊CPU 在 while 循環(huán)里搬了幾萬次數(shù)據(jù)板子卡得連 I2C 掃描都明顯變慢。后來在樹莓派 Pico 上研究了一晚上發(fā)現(xiàn) MicroPython 可以通過machine.mem32直接操作 RP2040 的 DMA 寄存器實(shí)現(xiàn)內(nèi)存到內(nèi)存拷貝速度比 Python 循環(huán)快幾十倍而且代碼并不復(fù)雜。這篇文章就把整個(gè)過程整理成保姆級(jí)教程從寄存器原理到實(shí)操代碼、常見坑全走一遍。1. 內(nèi)容整體設(shè)計(jì)與思路拆解1.1 DMA 到底解決什么問題DMA 的全稱是 Direct Memory Access直接內(nèi)存訪問。你可以把它理解成一條獨(dú)立的“數(shù)據(jù)傳送帶”CPU 只需要把“從哪搬、搬到哪、搬多少”告訴 DMA 控制器剩下的重復(fù)搬運(yùn)工作由 DMA 硬件自動(dòng)完成搬運(yùn)過程中 CPU 基本不用管。內(nèi)存到內(nèi)存?zhèn)鬏斁褪前褦?shù)據(jù)從 SRAM 的一塊區(qū)域搬到另一塊區(qū)域。你可能想這種事情不是一行for循環(huán)就能做嗎問題在于MicroPython 的for循環(huán)是解釋執(zhí)行的每搬一個(gè)字節(jié)解釋器都要解析指令、查詢對(duì)象、更新循環(huán)計(jì)數(shù)器開銷是巨大的。DMA 是純硬件搬運(yùn)沒有解釋器開銷一個(gè) AHB 時(shí)鐘周期就能搬一個(gè) word兩者差距非常明顯。1.2 為什么在 MicroPython 里也能配置 DMA很多初學(xué)者誤以為 MicroPython 是“玩具語(yǔ)言”只能點(diǎn)燈、讀傳感器。其實(shí) MicroPython 運(yùn)行在真實(shí)硬件上天然可以通過內(nèi)存映射寄存器訪問外設(shè)。RP2040 和普通 Cortex-M0 芯片一樣沒有 MMU所有外設(shè)寄存器都映射在固定的地址空間里。MicroPython 的machine.mem32允許你直接讀寫在某個(gè)絕對(duì)地址上的 32 位整數(shù)。DMA 控制器的寄存器也在內(nèi)存映射區(qū)所以理論上可以用machine.mem32操作 DMA 控制器的所有寄存器。這個(gè)方案不依賴任何第三方庫(kù)通用性極強(qiáng)只要固件是官方 MicroPython 就能跑。1.3 內(nèi)存到內(nèi)存 DMA 的適用場(chǎng)景內(nèi)存到內(nèi)存?zhèn)鬏斪畹湫偷膱?chǎng)景是音頻處理。音頻采集 DMA 會(huì)把 ADC 或 I2S 的數(shù)據(jù)寫進(jìn)緩沖區(qū)你需要在緩沖區(qū)充滿之后把它搬到另一個(gè)處理緩沖區(qū)這時(shí)候用 DMA 搬運(yùn)CPU 可以騰出來做濾波、壓縮、顯示刷新。另一個(gè)場(chǎng)景是圖形刷新。如果你用 Pico 驅(qū)動(dòng)一塊小 LCD可能需要頻繁把圖像 buffer 從一個(gè)緩存拷貝到另一個(gè)緩存DMA 能顯著減少刷新耗時(shí)。還有緩沖區(qū)清零后面我會(huì)單獨(dú)講一個(gè)由 DMA 執(zhí)行的快速清零技巧。但是如果只是幾十個(gè)字節(jié)的搬運(yùn)DMA 反而不劃算。配置寄存器本身就有幾條語(yǔ)句MicroPython 里執(zhí)行這幾條語(yǔ)句也需要時(shí)間。數(shù)據(jù)量越大DMA 的優(yōu)勢(shì)越明顯個(gè)人經(jīng)驗(yàn)是單次搬運(yùn)超過 256 字節(jié)DMA 帶來的收益就很可觀了。1.4 為什么自己寫寄存器而不是找現(xiàn)成庫(kù)MicroPython 的 rp2 移植目前沒有提供開箱即用的 DMA 高層封裝網(wǎng)上能搜到的第三方庫(kù)大多依賴特定固件版本而且功能不完整。自己寫寄存器雖然看起來“底層”但恰恰是這類硬件外設(shè)最穩(wěn)定的使用方式。寄存器一旦配好只要 RP2040 的地址映射不變代碼在很長(zhǎng)一段時(shí)間內(nèi)都能直接用。另外理解了寄存器配置之后你會(huì)對(duì) DMA 的工作機(jī)制有更深的理解后面再去用 SPI DMA、PIO DMA 都是順理成章的事。2. 核心細(xì)節(jié)解析RP2040 DMA 控制器的寄存器與配置原理2.1 外設(shè)基地址與通道布局RP2040 的 DMA 控制器基地址是0x50000000一共 12 個(gè) DMA 通道每個(gè)通道占 0x40 字節(jié)的寄存器空間。也就是說通道 0 的寄存器在0x50000000通道 1 的寄存器在0x50000040通道 N 的寄存器在0x50000000 N * 0x40。通道內(nèi)最關(guān)鍵的四個(gè)寄存器是寄存器偏移作用READ_ADDR0x00讀地址DMA 從哪里讀數(shù)據(jù)WRITE_ADDR0x04寫地址DMA 把數(shù)據(jù)寫到哪里TRANS_COUNT0x08傳輸計(jì)數(shù)還剩下多少數(shù)據(jù)沒搬完CTRL0x0C控制寄存器配置寬度、遞增、觸發(fā)源等這里特別強(qiáng)調(diào)一下TRANS_COUNT是一個(gè)“遞減型計(jì)數(shù)器”DMA 每完成一次傳輸它就自動(dòng)減一。當(dāng)你讀取它發(fā)現(xiàn)是 0 的時(shí)候說明傳輸已經(jīng)完成。這個(gè)特性在后面的等待邏輯里會(huì)用到。2.2 CTRL 控制寄存器逐位拆解CTRL 寄存器是 DMA 配置的核心。我在實(shí)驗(yàn)中最常用的位段如下位段位數(shù)取值含義ENbit 0通道使能置 1 后通道開始響應(yīng)觸發(fā)DATA_SIZEbit 2-3傳輸寬度0 表示 8 位1 表示 16 位2 表示 32 位INCR_READbit 4讀地址是否遞增1 表示每次傳輸后源地址 數(shù)據(jù)寬度INCR_WRITEbit 5寫地址是否遞增1 表示每次傳輸后目標(biāo)地址 數(shù)據(jù)寬度DIRbit 11傳輸方向1 表示從內(nèi)存讀取0 表示從外設(shè)讀取BSWAPbit 16字節(jié)交換內(nèi)存到內(nèi)存通常不用CHAIN_TObit 21-25鏈?zhǔn)?DMA指定當(dāng)前通道完成后自動(dòng)觸發(fā)哪個(gè)通道TREQ_SELbit 26-30觸發(fā)源選擇決定 DMA 通道以什么節(jié)奏傳輸這里最容易搞混的是DIR位。RP2040 的 DMA 通道可以用在“外設(shè)到內(nèi)存”和“內(nèi)存到外設(shè)”兩個(gè)方向上。對(duì)于內(nèi)存到內(nèi)存?zhèn)鬏斘覀兿M?DMA 從內(nèi)存讀數(shù)據(jù)所以DIR必須置 1。如果DIR為 0DMA 會(huì)以為你是從某個(gè)外設(shè)讀數(shù)據(jù)行為可能會(huì)很詭異。2.3 TREQ_SEL 設(shè)為 0x3F 是內(nèi)存到內(nèi)存?zhèn)鬏數(shù)年P(guān)鍵TREQ_SEL 是 DMA 的“觸發(fā)源選擇”。外設(shè) DMA 的場(chǎng)景里SPI 發(fā)送一個(gè)字節(jié)就會(huì)有 DREQ 信號(hào)請(qǐng)求 DMA 喂下一個(gè)數(shù)據(jù)所以 DMA 的傳輸節(jié)奏由外設(shè)決定。但內(nèi)存到內(nèi)存?zhèn)鬏敍]有外設(shè)信號(hào)你必須給 DMA 一個(gè)“永遠(yuǎn)有請(qǐng)求”的狀態(tài)讓它以最快速度連續(xù)搬運(yùn)。RP2040 手冊(cè)里專門定義了一個(gè)觸發(fā)源叫DREQ_FORCE值剛好是0x3F也就是 63。把TREQ_SEL設(shè)為0x3FDMA 就會(huì)變成無條件的連續(xù)傳輸模式。很多人在網(wǎng)上抄代碼發(fā)現(xiàn) DMA 不工作一個(gè)常見原因就是TREQ_SEL沒有設(shè)置為0x3F。這個(gè)字段在 CTRL 寄存器的 bit 26 到 bit 30如果寫 0DMA 可能一直在等待外設(shè)觸發(fā)TRANS_COUNT永遠(yuǎn)減不到 0。2.4 對(duì)齊、數(shù)據(jù)寬度和地址遞增策略RP2040 的 DMA 在 32 位模式下要求源地址和目標(biāo)地址都必須 4 字節(jié)對(duì)齊同時(shí)傳輸字節(jié)數(shù)也必須是 4 的倍數(shù)。如果不滿足對(duì)齊條件DMA 可能直接觸發(fā)總線錯(cuò)誤甚至導(dǎo)致系統(tǒng) HardFault。8 位模式?jīng)]有對(duì)齊要求任意地址、任意長(zhǎng)度都能搬。16 位模式要求 2 字節(jié)對(duì)齊。所以你的取舍是追求最快速度就用 32 位模式但要保證 buffer 對(duì)齊追求通用性就用 8 位模式犧牲一部分性能。地址遞增策略也有講究。如果INCR_READ 1且INCR_WRITE 1DMA 會(huì)從源地址一路遞增讀到目標(biāo)地址一路遞增寫這是標(biāo)準(zhǔn)的“內(nèi)存拷貝”模式。如果INCR_WRITE 0DMA 會(huì)把同一個(gè)值反復(fù)寫到同一塊地址的連續(xù)區(qū)域這個(gè)特性可以用來快速填充和清零后面第 5 節(jié)會(huì)詳細(xì)講。3. 實(shí)操過程MicroPython 下的完整實(shí)現(xiàn)3.1 準(zhǔn)備工作與環(huán)境搭建實(shí)操前需要準(zhǔn)備一塊樹莓派 Pico 或 Pico W一根 USB 數(shù)據(jù)線刷好官方 MicroPython 固件的開發(fā)環(huán)境Thonny 或 mpremote 都行RP2040 Datasheet遇到不明白的位段可以查固件版本建議至少 1.19 以上我實(shí)測(cè)用的 1.23 和 1.24 都正常。machine.mem32和uctypes都是標(biāo)準(zhǔn)模塊不需要額外安裝。連接開發(fā)板后先驗(yàn)證machine.mem32能否正常訪問 DMA 寄存器import machine DMA_BASE 0x50000000 # 讀通道0的CTRL寄存器初始值應(yīng)該是0 print(hex(machine.mem32[DMA_BASE 0x0C]))如果輸出了0x0說明內(nèi)存映射訪問正??梢岳^續(xù)。3.2 獲取 bytearray 真實(shí)內(nèi)存地址的正確姿勢(shì)MicroPython 中bytearray是一個(gè) Py 對(duì)象你需要的地址是它內(nèi)部數(shù)據(jù)區(qū)在 SRAM 中的地址。id()返回的是對(duì)象頭部的地址不是數(shù)據(jù)區(qū)地址所以不能用。正確做法是用uctypes.addressof()import uctypes buf bytearray(1024) buf_addr uctypes.addressof(buf) print(hex(buf_addr), buf_addr % 4)addressof返回的是 bytearray 數(shù)據(jù)區(qū)首地址。只要你的 buffer 變量一直存活這個(gè)地址就是有效的DMA 可以放心用。注意MicroPython 的 GC 不會(huì)移動(dòng)對(duì)象所以即使發(fā)生垃圾回收這個(gè)地址也不會(huì)變但前提是引用不能丟否則對(duì)象被回收地址就懸空了。3.3 基于寄存器配置的內(nèi)存到內(nèi)存 DMA 完整代碼下面是我整理的兩個(gè)函數(shù)。第一個(gè)是 32 位模式速度最快但對(duì)齊條件嚴(yán)格第二個(gè)是 8 位模式無對(duì)齊要求適合通用搬運(yùn)。from machine import mem32 from uctypes import addressof DMA_BASE 0x50000000 def dma_copy_word(dst, src, nbytes, ch0): 32位模式搬運(yùn)要求dst/src地址4字節(jié)對(duì)齊nbytes是4的倍數(shù) base DMA_BASE ch * 0x40 if nbytes % 4 ! 0: raise ValueError(nbytes must be multiple of 4) words nbytes // 4 # 先配置好地址和計(jì)數(shù)再寫入CTRL啟動(dòng) mem32[base 0x00] addressof(src) # READ_ADDR mem32[base 0x04] addressof(dst) # WRITE_ADDR mem32[base 0x08] words # TRANS_COUNT按word計(jì)數(shù) # EN1, DATA_SIZE2(32位), INCR_READ1, INCR_WRITE1, DIR1, TREQ_SEL0x3F ctrl (1 0) | (2 2) | (1 4) | (1 5) | (1 11) | (0x3F 26) mem32[base 0x0C] ctrl # 等待傳輸完成TRANS_COUNT自然會(huì)減到0 while mem32[base 0x08] ! 0: pass def dma_copy_bytes(dst, src, nbytes, ch0): 8位模式搬運(yùn)地址任意、長(zhǎng)度任意最通用 base DMA_BASE ch * 0x40 mem32[base 0x00] addressof(src) # READ_ADDR mem32[base 0x04] addressof(dst) # WRITE_ADDR mem32[base 0x08] nbytes # TRANS_COUNT按字節(jié)計(jì)數(shù) # EN1, DATA_SIZE0(8位), INCR_READ1, INCR_WRITE1, DIR1, TREQ_SEL0x3F ctrl (1 0) | (0 2) | (1 4) | (1 5) | (1 11) | (0x3F 26) mem32[base 0x0C] ctrl while mem32[base 0x08] ! 0: pass我先解釋一下ctrl這行是怎么算出來的(1 0)EN 位置 1使能 DMA 通道(2 2)DATA_SIZE 設(shè)置為 2也就是 32 位模式(1 4)INCR_READ 置 1讀地址遞增(1 5)INCR_WRITE 置 1寫地址遞增(1 11)DIR 置 1表示本次傳輸從內(nèi)存讀取數(shù)據(jù)(0x3F 26)TREQ_SEL 設(shè)置為 0x3F使用 DREQ_FORCE 強(qiáng)制連續(xù)傳輸配置順序也有講究READ_ADDR、WRITE_ADDR、TRANS_COUNT 都必須在 CTRL 的 EN 位寫 1 之前完成配置否則 DMA 可能在地址還沒有準(zhǔn)備好的時(shí)候就開始搬數(shù)據(jù)。最穩(wěn)妥的方式就是把 CTRL 放在最后一步寫。3.4 性能驗(yàn)證與結(jié)果分析下面跑一個(gè)簡(jiǎn)單的對(duì)比測(cè)試數(shù)據(jù)量 4KBimport time src bytearray(4096) dst bytearray(4096) # 給源數(shù)據(jù)填充規(guī)律值方便驗(yàn)證 for i in range(4096): src[i] i 0xFF t0 time.ticks_us() dma_copy_word(dst, src, 4096, ch0) t_dma time.ticks_diff(time.ticks_us(), t0) print(DMA copy: , t_dma, us) print(match:, src dst) # Python純循環(huán)對(duì)照 t0 time.ticks_us() for i in range(4096): dst[i] src[i] t_py time.ticks_diff(time.ticks_us(), t0) print(Python copy:, t_py, us) print(speedup:, t_py / t_dma)我在 Pico 上實(shí)測(cè)4KB 數(shù)據(jù)用 DMA 也就幾十微秒而純 Python 循環(huán)通常要幾毫秒差距在三到五倍以上。而且數(shù)據(jù)量越大這個(gè)差距越明顯。注意dma_copy_word要求 src 和 dst 的地址是 4 字節(jié)對(duì)齊的如果遇到對(duì)齊錯(cuò)誤改成dma_copy_bytes就不會(huì)出問題。4. 常見問題與排查實(shí)錄4.1 數(shù)據(jù)拷貝完了但內(nèi)容不對(duì)這種現(xiàn)象最常見的原因是用了id(buffer)去取地址。id()返回的是 PyObject 頭部的地址不是數(shù)據(jù)區(qū)域DMA 從頭部地址讀出來的數(shù)據(jù)當(dāng)然不是你想要的。解決辦法統(tǒng)一用uctypes.addressof()。另一個(gè)原因是字節(jié)序。RP2040 默認(rèn)小端模式如果你在 32 位模式下搬運(yùn)數(shù)據(jù)內(nèi)存布局是低字節(jié)在前當(dāng)你把源和目標(biāo)都看成統(tǒng)一數(shù)組時(shí)結(jié)果應(yīng)該是對(duì)的。但如果你在其他架構(gòu)上生成的數(shù)據(jù)文件再放到 Pico 上直接搬運(yùn)就可能出現(xiàn)大小端問題。這種情況可以檢查一下 CTRL 的 BSWAP 位。4.2 DMA 傳輸一直不結(jié)束如果你發(fā)現(xiàn)while mem32[base 0x08] ! 0卡死了先檢查 CTRL 的 TREQ_SEL 是否寫成了 0x3F。沒有這個(gè)強(qiáng)制觸發(fā)源DMA 可能一直在等外設(shè) DREQTRANS_COUNT 不減到 0。另外也可能是通道被占用。MicroPython 的某些底層庫(kù)比如 audio、PIO、I2S 驅(qū)動(dòng)可能已經(jīng)占用了某幾個(gè) DMA 通道。如果你使用通道 0 恰好在系統(tǒng)固件里被占用就會(huì)沖突。寫代碼前可以先檢查一下通道是否空閑def is_dma_channel_free(ch): return (machine.mem32[DMA_BASE ch * 0x40 0x0C] 1) 0如果返回 False說明通道被占用換一個(gè) ch 重新試。4.3 系統(tǒng) HardFault 或死機(jī)HardFault 絕大多數(shù)情況是地址沒對(duì)齊或地址非法。32 位模式要求源地址、目標(biāo)地址都是 4 的倍數(shù)如果bytearray恰好不是按 4 對(duì)齊分配的就會(huì)出問題。遇到死機(jī)的時(shí)候可以先換成 8 位模式驗(yàn)證數(shù)據(jù)通路是否正常再考慮對(duì)齊問題。另外DMA 訪問不能超過實(shí)際內(nèi)存邊界。RP2040 的內(nèi)置 SRAM 是 264KB地址范圍是0x20000000到0x20041FFF如果源 buffer 或目標(biāo) buffer 越界DMA 可能訪問到不存在的地址系統(tǒng)不死才怪。4.4 DMA 沒有比 Python 循環(huán)快多少如果你發(fā)現(xiàn) DMA 帶來的提速不明顯先看數(shù)據(jù)量。幾十字節(jié)的拷貝根本發(fā)揮不出 DMA 的優(yōu)勢(shì)至少幾百字節(jié)往上再考慮。還有一個(gè)容易被忽略的問題MicroPython 的函數(shù)調(diào)用、寄存器配置本身也有執(zhí)行開銷。如果你在 DMA 的等待循環(huán)里加了額外的打印操作或者把配置寫在一個(gè)低效的循環(huán)里整體耗時(shí)會(huì)被 Python 端拉高。最好的做法是設(shè)計(jì)一個(gè)長(zhǎng)緩存一次 DMA 搬完而不是小段多次搬運(yùn)。4.5 速查表現(xiàn)象可能原因解決辦法數(shù)據(jù)是全零或亂碼用id()取地址出錯(cuò)改用uctypes.addressof()TRANS_COUNT 卡著不動(dòng)TREQ_SEL 未設(shè) 0x3FCTRL 寫入0x3F 26HardFault / 死機(jī)地址未 4 字節(jié)對(duì)齊換 8 位模式或手動(dòng)對(duì)齊DMA 通道沖突固件庫(kù)占用通道換空閑通道提速不明顯數(shù)據(jù)量太小至少 256 字節(jié)以上再 DMA5. 擴(kuò)展玩法DMA 還能這么用5.1 快速清零與填充固定地址中間值DMA 的 INCR_READ 和 INCR_WRITE 是分開控制的這給我們留了一個(gè)很有意思的玩法。如果 Read 地址不遞增Write 地址遞增DMA 就會(huì)把同一個(gè)值反復(fù)寫到一塊連續(xù)區(qū)域。利用這個(gè)特性可以實(shí)現(xiàn)快速清零def dma_zero_fill(dst, value, nbytes, ch0): base DMA_BASE ch * 0x40 if nbytes % 4 ! 0: raise ValueError(nbytes must be multiple of 4) # 準(zhǔn)備一個(gè)固定的word值的buffer val_buf bytearray(4) val_buf[0] value 0xFF val_buf[1] (value 8) 0xFF val_buf[2] (value 16) 0xFF val_buf[3] (value 24) 0xFF mem32[base 0x00] addressof(val_buf) # 源地址固定 mem32[base 0x04] addressof(dst) # 目標(biāo)地址遞增 mem32[base 0x08] nbytes // 4 # INCR_READ0, INCR_WRITE1, DATA_SIZE2, DIR1, TREQ_SEL0x3F ctrl (1 0) | (2 2) | (0 4) | (1 5) | (1 11) | (0x3F 26) mem32[base 0x0C] ctrl while mem32[base 0x08] ! 0: pass這個(gè)技巧在音頻靜音、圖像清屏、幀緩沖初始化里特別實(shí)用。一次性 DMA 搬運(yùn)幾百個(gè) word 比for循環(huán)快得多。5.2 雙緩沖與環(huán)形緩沖DMA 通道自帶的 RING_SIZE 和 RING_SEL 位可以實(shí)現(xiàn)環(huán)形緩沖DMA 在地址到達(dá)邊界時(shí)自動(dòng)回繞。這個(gè)在大批量連續(xù)數(shù)據(jù)采集場(chǎng)景下非常有用比如 ADC 持續(xù)采樣到一個(gè)小緩沖區(qū)緩沖區(qū)滿了自動(dòng)從頭覆蓋CPU 只需要在間隙讀取有效數(shù)據(jù)。內(nèi)存到內(nèi)存?zhèn)鬏斠部梢杂玫江h(huán)形緩沖比如音頻播放循環(huán)播放一段短采樣。把源地址配成環(huán)形回繞DMA 會(huì)自動(dòng)循環(huán)播放采樣數(shù)據(jù)CPU 幾乎零負(fù)擔(dān)。5.3 多通道并行搬運(yùn)RP2040 有 12 個(gè) DMA 通道實(shí)際項(xiàng)目中可以同時(shí)啟用多個(gè)通道搬運(yùn)多路數(shù)據(jù)。比如一個(gè)通道負(fù)責(zé)從 ADC 采集緩沖區(qū)搬到處理緩沖區(qū)另一個(gè)通道負(fù)責(zé)從處理結(jié)果搬到顯示緩沖區(qū)兩條流水線互不干擾。不過要注意多個(gè)通道共享總線和 DMA 控制器如果同時(shí)發(fā)起大量傳輸會(huì)搶占帶寬。是否需要分配高優(yōu)先級(jí)取決于你的實(shí)時(shí)性需求。CTRL 的 HIGH_PRIORITY 位可以給關(guān)鍵通道更高的總線優(yōu)先級(jí)。5.4 配合 PIO 和 SPI 外設(shè)DMA 的真正價(jià)值不止內(nèi)存到內(nèi)存它還可以配合外設(shè)做“零 CPU 參與”的數(shù)據(jù)流傳輸。PIO 是 RP2040 的特色把 DMA 通道綁到 PIO 的 DREQ 上可以實(shí)現(xiàn)連續(xù)輸出波形、讀取特定時(shí)序的數(shù)據(jù)CPU 只需要配置一次剩下的數(shù)據(jù)流由 DMA 自動(dòng)搬運(yùn)。SPI 屏幕刷新也可以這樣從顯存 buffer 直接 DMA 到 SPI TX刷新過程完全不用 CPU 盯著。我實(shí)測(cè)用這種方案推 320x240 的小屏刷新率比逐像素寫寄存器的方式高出一大截。6. 寫在最后一點(diǎn)個(gè)人提醒折騰 RP2040 DMA 的時(shí)候我有兩個(gè)很深的體會(huì)。第一不要迷信“底層就一定難”。DMA 無非就是“源地址、目的地址、數(shù)量、控制”四個(gè)要素對(duì)著手冊(cè)把每個(gè)位段搞清楚比在論壇上零散抄代碼靠譜得多。抄來的代碼一旦出錯(cuò)你都不知道該怎么改。第二MicroPython 寫 DMA 并不是“離經(jīng)叛道”。很多場(chǎng)景下我們既要 Python 的開發(fā)效率又想要接近底層的性能直接操作寄存器就是這座橋。你完全可以在 MicroPython 里把 DMA 配置封裝成通用函數(shù)然后把精力放在應(yīng)用邏輯上。最后分享一個(gè)小技巧如果你不確定當(dāng)前固件的 DMA 通道是否被其它庫(kù)占用可以在初始化前執(zhí)行一次全通道掃描打印所有通道的 EN 狀態(tài)。這樣既能避開沖突也能幫你快速定位“為什么 DMA 不響應(yīng)”。希望這篇教程能幫你少踩幾個(gè)坑順利把 RP2040 的 DMA 用起來。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲欧美在线丝袜| 国产超碰欧美| 熟妇的味道HD中文字幕| 久操免费电影| 亚洲AV无码久久精品蜜桃小说| 黄视频免费| 中国黄色特级精品一区二区三区片| 人人做人人妻人人夜视频| 国产精品一区二区三区免费视频| 福利天堂| 亚州色站 日韩电影| 曰韩av中文字幕专区| 欧美国产精品久久九九| 日本黄色精品| 老司机久久| 在线观看一卡二卡| 黄总AV色图| 色情婷婷| 欧美一区二区亚洲天堂| 黄色网址在线免费观看| 白丝被操91| 一区二区三| 欧洲自拍第一页| 色婷婷在线视频精品导航| 黑人嘿嘿嘿超爽免费视频| 国产精品第一页国产大屁股视频免费区| 精品国产乱码久久久兰草影视| 91欧美高清| 成人国产精品三级A片| 国产亚洲精品精AV.| 国产精品人妻免费精品| 性夜影院爽黄A爽免费动漫| 国产一区二区精品久久久不卡蜜臀| 第四色亚洲色图| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 96精品在线| 亚洲 欧美日韩 另类| 五月婷婷丁香六月丁香| 性爱视频啪啪啪啪| 人人操人人摸人人看人人插| 久久久亚洲高清不打码| 狠狠综合网| 69精品久久久久中文字幕| 99久久精品无码一区二区| 香蕉久久AⅤ...| 3PAV乱伦视频| 国产无码高清操逼视频| 国产成人综合在线播放| 在线女人91| 日本三级R| 国产大学生口爆吞精合集| 高清国产成人无码| 欧美日韩激情无码专区| 顶级丝袜熟女一区二区三区| 亚洲经典啪啪| 人妻激情另类| 久久久精品视频欧州站| 91欧美网| 天天干天天操天天干天天操| 色爱综合网欧美| 国产精品欧美激在线| 日韩av三四区| 97丝袜亚洲在线播放| www.av不卡中文字幕| 天天干夜夜肏| 欧美日本成人一区二区| 男女日B国产| 国产亚洲福利第一页丝袜| 91精品婷婷国产综合久久竹菊| 精品久久99| 色网亚洲人| 综合久久久久久久久91| 国产中文字幕在线点播| 青娱乐国产精品| 国产极品99热在线播放69| 亚洲欧美日韩精品久久久一区二区| 欧美国产精品| 欧美日综合| 色小视频蜜乳| 欧美亚州综合网图片| 日本 欧美 亚中文字幕| 国产福利视频精品视频| 国产精品网站www| 乱人乱色一区二区三区免费| 91亚洲欧美激情| 麻豆区久久久久亚| 啪啪视频免费在线观看| 中文字幕国产| 亚洲成人碰碰| 美女AV一区二区| 蜜桃午夜视频一区二区 | 91欧美综合| 午夜乱轮操逼视频免费看| 亚洲国产高清福利视频| 天天操av懂色| 大但人体久久久久| 国产精品不卡高清在线观看| 亚洲精品人妻在线| 超碰日本97美女人妻人人玩人人爱| 97中文字幕色| 天美传媒AV在线| 岛国视频一二三区| 超碰97网址| 蜜桃午夜视频一区二区 | 久久精品欧美一区蜜桃| 日韩精品影视| h无码动漫在线观看| 99久久无色码| 天堂69亚洲精品中文字| 四虎AV在线观看| 一二三四视频在线社区中文字幕| 国产女大学生AV| 五月大香蕉| 毛片麻豆91糖心精品毛情片| 懂色中文一区二区三区| 日韩伦理久 久久 清纯 | 9999免费精彩视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 老女人综合网| 九月色婷婷| 天操天操夜操夜月月年年操操| 校园春色五月天| 午夜影美女日鸡鸡天天视频国产| 欧美最大综合网| 永久免费av无码网站国产app| 日本免费不卡二区| 呦呦影院| 欧美天堂日韩三级国产传媒| 精品无码一区二区三区色欲| 亚洲老熟妇xxx| 俺去啦自拍| 3P乱轮视频| 欧美日韩天堂| 亚洲成人一区二区精品| 中国的操老妇女| 97人人操人人摸人人爱| 天天热精品| 999国产精品999| 亚洲精品国产熟女久久久| 色婷婷视频| 丰满人妻一区| 香蕉久久国产AV一区二区| 91久久久久| 免费人成?大片在线播放| 97超级久久| 乱色视频中文字幕| 99久久99久久免费精品蜜臀| 91亚洲人电影| 狠狠色伊人亚洲综合网站色| 青青草啪啪网| 性爱乱伦一区| 亚洲 国产 精品一区| 久久99999| 2018天天干在线视频| 98色网| 资源新线在线天堂| 欧美天堂日韩三级国产传媒| 日韩无码专区| 日韩亚洲欧美中文字幕| 欧美一品道| 亚洲 欧美 手机在线观看| 四虎884| 日韩精品国产精品五码一区二区| 久久久久久亚洲Av无码精| 色婷婷综合久久中文字幕雪峰| 亚洲天堂男人网| 日本999精品视频| 蜜乳Av成人片网站| 久久久久熟女| 欧美色图私拍91| 欧美十八禁网站| 亚洲激情深爱文学小说网站| 久久久久久性爱视频| 国产第12页| 欧亚韩国999| 青青草中文-久久青草精品一区二区三| 91欧美在线| 久久久久921| 91neishe| 99热久| 超清福利精品视频在线| 激情小说亚洲| 国产自产22区| 亚洲少妇在线影音| 中文字幕亚洲欧美在线不卡| 无码自拍SM| 亚洲天堂在线怕怕视频| 欧美中日韩XXXX| 青青草精品| 精品一区二区成人动漫| 成年人三级黄色片视频| 91丝袜在线播放| 久久天堂网| 亚洲人成色9999精品久久| 国产麻豆福利av在线播放| 国产精品不卡少妇白| 日韩中文字幕宗合在线| 91色五月俺来也| 亚洲av乱伦色图网站| 日本久久女同性恋视频| 中国和日本人色哪个不下载能放| 97干色天堂| 这里有精品| 国产亚洲日本精品在线| 国产精品白丝在线播放| 国内毛片热久久思思热| 狠狠超| 亚洲 在线| 色哟哟精品1精品2| 校园春色宗合网| 黄片直播三级黄片两女一男| 老司机老司机午夜影院| 久热影视| 91东京热男人的天堂| 超清中文乱码字幕| 无码高清操逼| 一级二级在线观看| 欧美亚洲国产91在线| 少妇精品久久| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 色综91| 亚州,欧美在线| 久久熟女久| 九一综合精品视品av| 久久鲁干| 91色综| 97WW精品| 亚洲限制级| 日韩av乱伦| 久湿久久| 91综合天天看| 天天爱天天操| 五月天我淫我色av| 亚洲一区二区三区不卡国产欧美| 日本性爱欧美性爱| 美国aaaaa一级黄片| 亚州AV无码国产精品| 欧美视频中文字幕区| 97干在线视频| 厕所偷拍在线| 久久综合av| yazhououmeizongya| 日日摸日日碰夜夜爽视频| 后入式免费视频| 亚洲天天更新| 中国大陆国产高清AⅤ毛片| 欧美成熟性爱精品| 国产精品久久久久久片| 91oumei| 久久精9| 精品一二三区女同| 日韩激情电影中文字幕| 强奸乱伦Av网| 啪啪视频mP4| 午夜成人福利影视| 婷婷人妻激情| 无码精品久久| 夜夜操2028| 亚洲三级网址久久最新| 久久宗合亚洲| 国产粉嫩蜜臀av一区二区三区| 欧美日韩午夜精品一区二区三区| 伊欧美综合视频| 青青草日韩无码| 性性欧美| 黄色无码高清黄色无码网站| 国产免费一区二区在线A片视频| 丁香六月激情综合| 偷拍亚洲视频一区二区三区四区| 日韩三级在线观看网站| 欧日韩不卡视.频| 四虎884a| 亚洲 中文字幕 精品| 自拍偷拍 高清无码| 性色avv| AV色五月天| 凹凸视频在线一区二区| 韩国一级做A片免费的| 国产日本熟女顶级一区二区三区视频| 91精品操美女| 久久riav中文精品| 蜜臀久久久| 女优大全 - 91n| 亚洲乱伦图片视频| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 无码免费精品高清| 日韩大香蕉精品在线视频| 97av在线观看| 熟女这里只有精品6| 久久激情视频| 黄日韩| 九九碰九九爱97超| 亚洲中文字幕噜噜噜久久久| 亚洲好色人妻| 日韩性爱小视频在线观看| 日本一天色道久久久精品视频| 国产熟女无套内射| 丁香五月天婷婷姐| 亚洲无992tv| 日本午夜精品理论片A级APP发布| 一区二区亚州激情久婷婷欧美 | 黄色污污污污污污网站| 国产成人五月天丁香花| 99热这里只有精品9| 久久久久无码一妻区| 小视频国产| 国产男女无套97| 夜草网站| 欧洲亚洲人妻无码中字久久三区四区 | 在线观看一卡二卡| 97超碰久久| 中文字幕在线观看丝袜| 操国产逼| 蜜桃精久三区| 26uuu国产日韩综合在线观看| 亚洲色图欧美色图制服丝袜| 国产亚洲女v在线观看| 啊啊啊啊操死我了| 中国探花熟女| 91精品丝袜久久久久久| 久久这里都是精品| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 中文字幕国产| 99热这里只有精品8| 欧美宗合色| 久久欧美1卡2卡3| 91国产操逼视频| 欧美超碰96| 日本黄色大片一级视频免费麻豆| 丝袜亚洲91| 日韩免费性爱视频在线观看| 蜜桃香蕉久草精品在线| 亚洲一区二区三区麻豆传媒| 久久综合亚洲色1080p| 91欧美巨乳| 99热网站| 国产传媒午夜理伦精品| 久久中文字幕人妻熟av女蜜柚| 激情开心五月天| 青青草中文字幕| 黄色不卡视频| 激情五月天社区| 成人线上超碰| 99re综合伊人| 色五月第四色| 大香蕉丝袜一级片| 人人操人人摸人人看人人插| 春色综合免费| 97资源欧美| 日本熟妇人妻中出视频| 在线午夜成人无码视频| 人人噜夜夜操| 国产原创精品| 日韩AV熟女乱伦| 精品少妇一区二区| 久操操AV电影| 狠狠入| 亚洲淫乱骚妇AV| 人妻乱仑一区二区三区| 久操97| 97热视频在线观看| 香港日本韩国人妇99www.wccm20| 狠狠综合网| 亚洲av综合色区图片亚洲| 2020天天色综合| 级品肉射| 日产国产精品中文久久婷婷| 激情综合亚洲| 中字乱伦AV| 色综合天天| 久久伊人最新网址视频| 91天美免费| 五十路熟女工口 | 久久久一区二区三区四曲免费听 | 91久久精品蜜臀| 夜夜影视四色| 日本一区视频在线观看| 久久精品国产亚洲AV清纯| 国产嫩草精品A88AV| 色偷偷色偷偷欧美日韩| 夜夜高潮夜夜爽高清视频一| 久久久久久亚洲精品不卡人乳| 色yeye成人免费视频| 搡老熟女免费视频| 操国产逼| 男女啪啪网站免费视频| 搡老女人老91二区| 91色插| 久久成人东京热人妻| 91国内外在线| 性交一区二区在线播放| 97人妻色| 久久精品人体AV| 美女写真| 久久免费精品视频免一| 青青操狠狠撩| 桃花色涩综合影院| 亚洲激情综合| 极品色社| 男人的天堂2018.| 91男女啊啊啊| 亚洲成人一二三区| 欧美在线大香蕉| 日本人妻一区二区| 九九热在线精品视频| 久久久久久中文版| 欧美色日本| 色娱乐色呦呦夜夜夜夜av| 欧美日韩精品国产91| 亚洲精品一二三四区| 美女人妻色网站| 国产一区96在线| 亚洲综合在线高清| 97超碰色屌| 清柠毛片| 亚洲熟妇自偷自拍另欧美| 欧美性爱www免费版| 99久久久er直播网址| 国产精品久久久久亚洲av| 操逼www.| www.狠狠操| 九九热五区| 欧美国产一区二区三区麻豆传媒| 99re在线视频| 亚洲情色 欧美| yiqicaoav| 俄罗斯一区二区视频在线观看| 思思热国产在线视频| 艹比视频国产精品| 久久久蜜桃一区二区三区| 激情开心五月天| 日日天天久久啊啊aaa| 欧美色日本| 久久久性少妇| 国产狂喷潮在线精品| 国产精品亚洲一区二区三区四区| 揉揉揉夜夜| 国产高潮AA片免费看| 久久久精品| 国产高清精品一区二区三区毛片| 亚洲男人综合网| 亚洲天堂热| 一区二区三区美女超清| 青草影院内射高潮| 亚洲AV小说| 樱花蜜乳av| 超碰97男女| 宅男91视频在线播放| 国产精品永久免费10000| 99精品久久久久久| 超碰超碰95| av天堂精品久久| 久久午夜神马| 国产精品久久久九九九| 97色伦欧美| 日日操丁香五月天| 啊啊啊久久久视频| 啊啊啊啊啊操我视频| 国产吞精a级片激情电影| 欧美资源| 欧美淫乱视频| 91色五月俺来也| 亚洲偷拍自拍在线视频| 精品无码一区二区三区| 久久99国产精品| 一本久久精品中文字| 婷婷久久久| 日韩中文字幕精品一区在线| 亲子敌伦对白在线播放| 好湿好紧视频| 91熟女.com| 亚洲熟妇无码一区二区三区| 久久人人看| 欧美激情另类一区二区| 男人的天堂kva| 欧美日韩人妻少妇 一区二区三区| 亚洲另类久操网| 国产精品老师| 国产综合网站在线播放| 探花视频免费观看国产专区| 欧美精品庄| 女人18精品一区二区三区| 亚洲综合图色在线| 欧美色图私拍91| 婷婷视频网| 欧洲熟妇xxXx欧美老妇裸体| 精品亚洲黄色片 国产精品导航一区二区 | 国产999精品久久久| 91视频综合在线| 久久久久久久久久久久黄色| 久久熟女人| 色色综合网站| 色99视频| 九月丁香综合网| 中文字幕丝袜国产第一页不卡| 精品九九九九九| 蜜臀99久| 国产一区二区在线播放| 中文字幕欧洲有码| 日本在线999| 欧美草草| 成人天天爽| 91AV天堂| 激情文学 亚洲图片| 蜜桃视频一区二区三区| 97资源免费视频| 老熟妇综合| www老逼91| 97欧美精品综合| 麻豆久久视频在线地址| 熟女日韩| 亚洲第一页色| 色999人与兽| 神马久久久久眼| 91激情国产| 久久久久久久9999| 天天干人人看综合| 欧美亚洲一级在线观看| 手机在线视频国内精品| 精品v日韩欧美国产| 强奸乱伦资源| 超碰97爽| 亚洲天堂第一页| 香蕉免费一区二区三区不读 | 亚洲欧美91√| 91色欧美| 日韩强奸av| 综合欧美激情网| 久热91| 久操B网| 亚洲精品欧洲精品| 91久久久久| 色悠久| 91大神精品长腿在线观看网站| 一级做a爰片久久毛片图片| 亚洲AV无码乱码| 亚洲无吗在线视频| 夜夜操二区| 日日A∨| 蜜桃午夜视频一区二区| 亚洲福利影院一区久久| 国产精品懂色tv影视免费观看| 国产亚洲欧美每日在线| 亚洲av强奸乱伦| 日欧美色| 97久久久网站| 嫩草在线视频| 午夜精品一区二区三区三上悠亚| 丰满少妇高潮无码| 亚洲色图A| 人人 操人人 操人人| 在线啊v一区| 日韩精品区二区三区不卡| 裸体1区| 资源新线在线天堂| 亚洲系列第一页| 夜夜操91744565| 国产精品69久久久久久久| 亚洲图片欧美偷拍| 天天看夜夜看日日干| 女人午夜视频777| 国产青一二三| 9 1超碰九色| 三级日韩一区二区三区| 99色天堂| 成人无码专区精品视频| 国产精品乱码久久久久久久久| 天天天肏屄肏屄肏屄欧美欧美| 久久久一区二区三区三州| 国产激情在线| 熟女在线视频| 999热这里只有精品| 亚洲aV无码成人在线观看| 97国产亚洲中文在线| 肥佬影院91| 黄片在线免费在线观看| 330dv亚洲成年视频网| 欧美色亚洲| 99视频自拍| 欧美性少妇| 亚洲伊人成综合成人网| 六月婷婷激情| 九九九九九九精品| 亚洲最新a在线观看| 爱欲AV| 男人午夜天堂| 五月丁香在线| 亚洲影视综合| 日本 欧美 亚中文字幕| 天天综合网~91| 一级A片女人高潮叫床| 人妻在线大香蕉| а√天堂资源官网在线资源| 日韩三级网址| 日韩免费中文字幕视频| 91老司机在线视频免费观看| 在线亚洲欧美| 亚州成人a∨| 放黄片放3级黄片没穿衣服| 日本熟妇熟色97一本在线观看| 黑丝制服中文字幕| 五月综合色| 男人的天堂99| 色99色| 精品视频久久| 亚洲欧美日韩综合在线尤物 | 任你干在线视频| 日本三级一区二区 在线| 美女91在线观看| 亚洲欧美日韩免费观看| 亚洲乱色视频一区、二区在线| 少妇久久久久久| 亚洲欧洲偷拍一区| 国产乱伦搜索结果91P| 日韩熟女精品无码专区一区二区| 日婷婷| 久久大香蕉手机高清视频| 免费操逼91| 麻豆蜜桃视频在线观看| 麻豆色约约| 五月婷婷六月激情| a'v在线资源| 久久国产对白激情浪潮| 成人激情无码在线视频| 色婷婷A V一二三四区麻豆综合| 操我无码| 久久久久久久九九九九| 男人的天堂欧美| 亚洲无吗在线视频| 欧洲亚洲人妻无码高清久久三区四区| 欧美亚洲玖玖玖| 国产亚洲欧美每日在线| 欧美精品,四区。五区| 97在线视频观看| a片久久久久久久久久久久 | 精品国模无码| 久久人体一区二区| 麻豆天美国美国产| 天天日天天搞天天干| 国产乱人妻精品入口| 凹凸视频特色日本特黄| 国产一国产一级毛片古装| 欧美国产有色电影| 九九热精品| 老熟女91| 少好三P| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 先锋色眉乱伦资源| 九九九九九九九九九国产精品| 九九九久千久久激情蜜桃在线看| 黄片色区软件| 激情综合网激情综合| 91N综合网在线| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 一二区在线观看视频| 亚洲国产精品乱码在线观看| 一级特级aaaa毛片免费观看| 国产色产精品在线观看| 欧美日韩青操| 啊a一区在线| 日韩性爱视频免费在线 | 色色色999| 久久产精品一区二区三区电影| 国产精品色| 亚洲色图欧美色图制服丝袜| 国产又色又爽又舒服的三级视频 | 色yeye成人免费视频| 百度百度日本操逼| 亚洲综合色图欧美| 青青草狠狠撸| 91l欧美在线| AA丁香综合激情| 97综合久久| 色网亚洲人| 国产久久日| 超碰97玖玖爱| 精品人妻二区三区| 精品亚洲国产成人AV制服丝袜 | 美欧老女人97| 亚洲熟女国产综合另类| 亚洲综合九九| 午夜欧美女人操逼| 日B操| 成人精品无码| 91夜色| 一区二区三| 香蕉99秘 一区精品蜜桃臀| 四虎精品一区| 日本免费一区二区不卡| 久操视频资源站公开| 精品欧美А∨无码黑人大荫蒂 | 久久久久幕乱码| 欧美色图 人妻| 超碰99热中文字幕| 亚洲熟女乱熟乱熟妇综合网二区| 禁止观看美女黄| 欧美78p| 日本 成 人 小说 电影 一区二区| 精品少妇一区二区三区在线视频| 国产精品成人蜜臀AV在线| 亚洲乱码国产乱码精网站| 国产精品久久久久亚洲av| 亚洲第一精品在线视频| 在线无码网站| 操逼逼一区视频| 亚洲色色探花| 嫩草美女久久| 久久久新亚洲AV| 日日干天天干夜夜爽| 中文字幕美女91| 在线免费观看日韩一区| 99re免费视频精品全部| 91色人妻| 91c色| 妺妺跟我一起洗澡没忍住| 超碰人人干| 日韩精品区二区三区不卡| 综合色图亚洲欧美| 日日夜夜干| 亚洲色偷偷色噜噜狠狠99网| 夜夜操老骚逼视频网站| h色99999| 亚洲av资源| 日韩无码一区二区三区| 久久 精品| 小说区 图片区色 综合区| 亚洲欧洲精品视频发布| 婷婷AV一区二区三区| www.天天干| 中文字幕在线观看网页| 国产蜜臀精品一区二区尤物| 日韩欧美亚洲自拍偷拍| 天天色黄色影院天天操| 色婷婷丁香| 91啪9色| 国产乱子伦一区二区三区免看| 人人妻人人色一区二区三区| 99re99| 日韩人妻制服丝袜av| 日韩成人网址| 日韩熟女精品无码专区一区二区 | 超碰成人国产| 九久9热| 肉丝无码中文高清| 国产激情视频一区区三区| 台湾一区国产高清在线| 中文字幕在线观看视频www| 国产精品经典一卡久久久| 久久伊人青青草| 久久久78| 99精品国产户外露出| 夜嗨影院| 99国产在线绯色一区| 色偷偷综合91久久噜噜| 999久久久免费精品国产牛牛| 性开放中文AV高清无码免费看| 超碰97起碰| 97超碰天天爱天天爱| 亚洲综合情色| 日韩一级二级三级免费看完整版| 久久精品国产亚洲AV片多多 | 亚洲AV无码秘 蜜桃臀国精产品| 操逼视频亚洲| 夜夜狼人妻| 黄页av| 五月丁香社区婷婷日韩欧美精品影院| 男人的天堂欧美| 欧美美女视频| 老司机射| 男人 天堂 日 亚洲| 欧美人妻少妇| 亚洲激情在线| 久久久久久裸体| 丰满人妻一区二区三区| 国产一级αv免费看片| 亚洲一本色码中文字幕| 三久久久四久久久久| 欧美一区二区亚洲天堂| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 2019久久久久久久久福利| 亚洲AV资源| 亚洲九九九九| 亚洲情色第一页| 超碰97COm中文| 一牛影视成人片免费| 欧美午夜色妇色鬼| 欧美成人一级麻豆| 麻豆天美国美国产| 亚洲,欧美,综合网| 成人性爱全视频观看| 蜜桃久久久久久久久久久久| 人妻性爱一区二区| 久久久噜噜噜久久久| 九九久久久| 啊视频在线| 日韩欧美麻豆 | 人人人摸人人| 综合久久婷婷| 亚洲综合九| 日韩性爱视频在线免费观看| 欧美综合骚| 亚州综合网| 国产青一二三| 亚洲激情久久久伊人综合| 欧美v亚洲v综合v国产v妖精| 亚洲操逼网| 国产成人啪一区二区| 欧美另类精品xxxx| 天堂伊人久久| 美中日韩无码| 90后后入| 激情99| 超碰成人人人爽人人爽| 中日无幕一二三四区| 日韩在线国产字幕| 欧美一区二区传媒| 天堂俺去俺来也www久久婷婷| 日本精品免费一区二区三区四区| 中文字幕在线观看永久| 老女人91| 91人妻爽爽人人做人人澡| 天天色欧美| 久久精品视频久久久| 91丝袜在线观看| 欧美少妇第一页| 久久亚州精品成人Av无| 亚洲欧美日韩电影网站一区| 九九探花视频在线观看| 亚洲图片欧美偷拍| 丁香色五月 97干| 九色黄站| 99热导航| 开心五月激情网| 黄色免费网| 亚洲情色综合网| www.狠狠| 夜夜操美女| 久久风骚城市| 三级片大波波| 久久久精品无码亚免费| 2019亚洲男人天堂| 天堂蜜桃无码视频一区二区| 天天综合网网欲色| 2026国产精品视频| 日韩成人性爱电影在线播放| 天天久久| 久久久性少妇| 亚洲av总站| 国产麻豆一级精品视频| 91麻豆天美| 老司机午夜福利视频一区二区| 国产精品亚洲免费| 亚洲 无码 偷拍| 亚洲中文字幕一区| 欧美亚综合色图| 欧美性爱在线无码| 亚洲A曰本VA欧美VA视频| 99re在线视频这里只有精品| 亚殴在线| 国产成人精品日本亚洲语言| 粉嫩av平台| 极品美女嘿咻| 久久久久久中文版| 一级黄色牲爱A级片| 大鸡巴久久| 韩日精品福利视频一区不卡在线免| 丁香六月婷| 亚洲最大成人a毛毛片| 91综合色| 亚洲一区二区av| 伊人久久蜜月| 91人妻视频在线| 九九色影院| 亚洲精品国产熟女久久久久久| 国产 日韩 欧美一区| 91nbbbbbb| 嗯嗯啊啊用力视频免费| 日日夜夜干| 亚洲图片日本AⅤ欧美在线| 亚洲综合射| 天天做天天爱天天爽AV| 九九AV| 五月天我淫我色av| 经典丝袜一区| 五月丁香综合网| 这里都是精品在线观看| 超碰人妻天天干| 91色花堂| 啊啊啊啊好疼| 限制级中的三级片中的黑粗大屌屌日人妻熟女 | 快灬快灬 一下爽蜜桃在线观看| 亚洲丝袜99| 18精品一区| 亚洲成av人片色午夜乱码| 欧美天堂在线| 蜜臀99久久精品久久久久久| 不卡一区视频| 色大香蕉97N| 亚洲综合一| 熟女网站最新| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 啊啊啊爽爽| 一区二区三区一亚洲中文字幕、综合区灬 | 99热最新| 园内精品自拍视频在线播放| 国产日本一区二区三区蜜臀在线观看| 亚洲drav色图| 97视频在线观看网站| 色欲人妻一区二区在线| 欧美精品双插| 中文字幕十五区| 婷婷成人五月天| 久久综合18p| 中文字幕丝袜人妻| 美女黑人91神马| 久热大香蕉网站| 国产日产欧产美韩系列麻豆免费| 狠狠干2020| 91丝袜视频在线观看| 日韩熟女精一区二区三区不卡| 色图综合网| 欧美天天干| 免费国产电影一区二区| 黄片免费视频2019| 强奸乱伦AV网站| 午夜电影在线观看无码专区| 国语av最新自产拍在线观看| 尤物国产一区在线观看| 妺妺跟我一起洗澡没忍住| 久久九九网| 大香蕉伊利av| 国模不卡一本二本三电影| 亚洲熟女综合| 夜夜骑操视频| 亚洲图片小说欧洲| 亚洲黑人在线| 国产操逼视频在线观看| 黄片免费日韩| 日本羞羞的视频在线播放| 99这里只有精品国产| 亚洲少妇中文字幕网址| 日韩精品 资源| 综合久久99亚洲人妻中文在线| 99re在线视频这里只有精品| 78久久| 91精品久久久| 欧美日韩性爱精品| 九九九九久久久| 亚洲色图a| 美日韩在线不卡人妻| 人妻激情视频| 亚洲自拍偷拍视频在线| 免费一级特黄特色大片在线观看看 | 成人久久久精品| 久久久久成人网| 日韩AV无码网站| 人人操人人大香蕉| 国产怡红院| 艳尻美人妻| 色香欲天天天天综合色| 综合久久97| 日韩人妻一区二区精品| 天天操女人| 四虎在线视频| 色黄色美女大长腿午夜视频| AA丁香综合激情| 日欧毛片久久| 久久久性| 日本网色| 日韩丝袜高跟制服在线观看| 9久久精品| 中文字幕一区电影在线观看| 91干熟女| 伊人伊人LD| 九九九免费视频| 欧美亚洲色图另类国产| 色女女女导航| 欧美日韩制服| 日韩不卡在线一区二区| 国产九九久久久精品| www.男人天堂| 国产家庭乱伦性爱视频| 懂色AV一区二区三区| 97国产超碰| 日本三级韩国三级美三级91| 欧美日韩中文视频播放| HEYZO高无码国产精品227| 97天天操天天干| 精品91日日夜夜超清资源| 家庭乱伦性爱av| 蜜臀99999| 人人操,人人液| 水野优香在线观看| 美女黄色91| 欧美日韩香蕉| 人妻一区久久二区三区色播| 天天狂操夜夜狂日| 日本黄 R色 成 人网站| 久久精品高清无码一区| 国产亚洲精品农村妇女| 欧美亚洲第1页| 97超碰碰| 欧亚乱色熟一区二区三四区| 亚洲资源一区| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 偷拍欧美亚洲| 美国aaaaa一级黄片| 国产精品视频| 午夜亚洲WWW湿好大| 日韩美女久久一区二区三区| 亚洲双插| 亚洲国产一区二区三区四区国产| 少妇内射视频| 91精品无码人妻系列| 绑缚麻绳人妻寝取完整版| 26UUU欧美日本| 夜夜操天天肏| 人人 操人人 操人人| 青草青青久久久久久国产| 亚州综合色| 成人短视频在线观看| 蜜桃久久一区二区| 久久一区无码| 国产精品直播在线观看直播| oumeizonghese,www| a一区二区三区乱码在线| 成人五月天色网| 成人性爱av| julia ann久久| 第一高清av中文字幕| 久久老熟女| 可以在线观看的黄色网址| 久久久久斤小| 97色在线| 中文乱码字幕观看| 97香蕉人人乳| 欧美成人四级在线播放| 亚洲综合 欧美| 一级黄色视频网| 啊啊啊啊啊好舒服视频| 亚洲aV无码成人在线观看| 综合熟妇一区二区三区| 东北黄色电影| 眼镜人妻101.com| 欧美激情 亚洲色图| 日本大片日本一区二区免费高清| 亚洲成人精品在线一区| 夜色97| Julia在线播放亚洲久久| 深夜福利黄片| 色色99| 蜜乳视频网站| 97国产综合欧美| 牛黄色久午久| 欧美91久久久久| 丁香六月激情| 亚洲色图尤物视频| 夜夜嗨一区| 日日日啊啊啊| 精品国产乱码久久久久久口爆网站| 亚洲国产日韩精品久久久| 欧美日日夜夜| 午夜啪啪片| 一本久道久久综合狠狠爱一密臀精 | 四虎影视欧美| 嗯嗯嗯啊啊啊操的我好爽| 韩国成人精品久久久免费看| 狠狠入| 美女91在线观看| 性videos欧美熟妇hdx| 日韩熟女视频二区| 五月黑AⅤ| 人人透人人操| 三级日本一区二区三区| 青青青草原| 五月丁香久久| 视频黄色国产一级| 国产成人超碰在线| 午夜精品久久久久久久99热影院| 999热这里只有精品| 久久精品免费| 欧美日韩激情无码专区| 国产久久久久久| www.高清无码诱惑一区.com| 红杏大香蕉| 人人操,操人人| www熟女乱伦com| 久久精品一区一起草| 91免费看一区二区三区| 日韩字幕一区| 78精品在线| 今日头条成人一区二区三区四虎精品| 欧美后进式| 极品国产内射| 久草成人| 97欧美色| 天天草AV| 中文字幕第23区| av操操不卡| 日韩女优中文字幕| 口爆综合网| 97人人模人人爽人人| 亚洲三区视频| 欧州一区二区三区四区| 东京热天堂网| 老熟女网站| 超碰97久| 啊啊啊啊在线播放| 国产1727欧美| 亚州色图片在线色| 久久最新视频免费观看| 激情小说五月天| 欧美日韩国产三级黄色| 五月天我淫我色av| 精品久久97| 欧美 综合 亚洲| 极品久久久久久久久久久久久久| 1区2区3区中文字幕日韩| 大香蕉伊人亚洲| 欧美色图中文字幕| 97亚洲一区| 激情综合五月婷婷| 激情综合五月婷婷| 日本一级一级一级一级| 色5月婷婷| 国产精品一区二区黄片| 国产激情av女片自拍| 国产福利电影| 久 久无码人妻AV| 日韩成人人妻网站| 免费男人的天堂| 欧美综合网站999| 漂亮人妻被强中文字幕hd| 爱丝福利| 青青操在线视频| 夜夜躁狠狠躁日日躁av| 97超碰香蕉| 亚洲欧洲日韩中文字幕一区| 青青草大香蕉视频| 一区二区视频在看| 久久精品无码熟妇一区二区三区视频导航 | 国产成人+综合亚洲+天堂| 午夜偷拍久久熟女| 亚洲制服欧美另类内射| 欧美激情综合| 超碰国产在线| 蜜桃视频精品一区二区| 免费观看的av| 啪啪91| 男人的天堂VA在线| 久久熟女精品不卡一区| 亚洲AV在线资源| 天天影视综合色| 搡老女人老91二区| 日韩视频中文字幕| 26uuu欧美日韩| 欧美激情另类一区二区| 亚洲欧洲日韩国产自在线| 99碰碰| 德国一二三不卡|