国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲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
返回資訊列表
99久久久久久亚洲精品不卡| 久久9免费视频| 婷婷探花久久精品一区| 亚洲欧美国产成人综合不卡| 嗯嗯,好大,好爽,好骚 | 久草色在线观看| 乱论91| 亚洲AV资源| 久久97精品久久久久久久不卡| 亚洲超碰AV| 人夜夜精品网站香蕉嫩草| 极品色综合| 色综合九九| 日韩色图 一区二区| 97超碰人人操人人操| 丰满人妻一区二区三区| 中文字幕欧美日韩三级| 精品久久視頻在线| 色九久| 久9热| 玖玖久久久| 国产精品情侣啪啪| 亚洲九九九| 日本免费一区二| 国产成人在线观看网址| 四虎永久在线精品免费网址| 午夜人人操| 伊人丝袜美腿高跟在线观看高清| 国产无吗在线播放| 精品国产国产AV| 爽极品影院| 久久欧美按摩999| 91中出| 午夜精品久久久久久久男人的天堂 | 91A欧美电影网站| 免费A V在线| 色99久草| 超碰亚洲欧美日韩无| 亚洲无线观看久久| 裸体1区| AV和黑人在线播放| 免费国产| 中文一区二区婷婷视频| 日日噜噜夜夜狠狠视频无| 免费成人在线熟妇网| 99色热国产视频精品| 久久久男人的天堂| h在线看免费版在线看| 男人综合网| 天天色悠悠激情| 欧美一级AAAAAAA| 夜夜骑天天燥| 日韩三级久久久| 亚洲无992tv| 69视频福利导航| 丰满人妻无码一区二区三区| 国产97综合| 大香樵伊人网| 久久久人妻| 日本一片一区| 九九性视频| 亚洲天堂男人| 亚洲精品1区| 久久久麻豆精品| 天天综合欧美| 涩涩久久精品| 亚洲情色电影网| 国产亚洲精品A在线观看下载| 久草精品视频| 中文字幕精品丝袜| 女同性恋久久| 1000部熟女视频在线观看| 国产欧美黑人丰满在线| 色五月婷婷在线| AV和黑人在线播放| 91人妻在线视频| 中文字幕十五区| 亚洲四虎熟女精品| 日韩视频精品在线观看| 日韩有码专区| 欧美传媒一区| AV天堂电影网| 大香蕉婷婷| 亚洲国产婷婷在线播放| 日本色色色网站免费看不卡| 一区二区亚州激情久婷婷欧美 | 一区二区三区精品黑丝白丝酒店对鸡| 久久成人国产精品| 国产精品农村妇女| 久久久内射良家| 狠狠久久四虎| 九九热男人天堂| 欧美十八禁导航成人| 久久精品—区二区三区内射| 天天久久久久久| 夜夜 中文视频rt| 亚洲男人的天堂一区二区| 黄色av一区二区在线| 日本人妻中文字幕| 亚洲欧美成人网站AAA| 91国产丝袜美女| 97精品国产97久久久久久| 成人性爱高清视频免费看| 少妇久久久久久久| 精品人妻一区二区免费看| 精品久久九| 超碰97玖玖爱| 91精品成人| 欧美黑人XXXⅩ高潮交| 久久精品国产96精品亚洲拳交| 黄片视频观看| 99久草| 精品人妻视频一区二区在线播放 | 麻豆传媒一区二区在线观看| 美女露胸露奶头| 国产精品视频精品一二| 看黄片视频免费| 国产在线能看的你懂的| 国产大陆天天艹| 国产9区| 日本加勒比无码专区| a一区二区三区乱码在线| 人人做天天爱| 五十路熟女人妻一区二区三区四区五| 91亚州日韩高清| 久久国产精品91| 超碰欧美| 丁香五月天久久精品视频一区二区三区| 成人小说另类在线| 天美欧美国产| 国人欧美精品一区二区| 一二三区视频在线观看| 色精品极品| 黄片qw| 夜夜骑天天燥| 色色99| 亚洲天堂精品日韩电影| 中文字幕88av在线| 欧美人妻精品一区二区| 久久久涩| 蜜桃久久久久久| 爽极品影院| 91激情国产| 高清无码网址| 人人操肉肉| 色婷婷A V一二三四区麻豆综合| 综合色图区| 97av在线观看| 韩国毛片一区二区三区| 91亚洲不卡一区| 97色在线视频| 四虎av在线| 97超碰久久色| 亚洲av影院在线观看| 黄色工厂这里只有精品| 国产色呦呦| 大香蕉日亚洲日本亚大| 18岁禁 茉莉成人久久| 日产狠狠干| 亚洲一区日韩精品| 欧美中文综合| 亚洲乱熟女一区二区| 日本精品88888888| 日小BB小视频| 中文字幕丰满子伦无码专区在线视频最新 | 91骚熟女| 夜夜嗨一区二区三区三州加勒比| 日韩一级二级在线| 99久久久久| 日韩精品色呦呦| 97天天综合| 精品无人区麻豆乱码1区2区图片 | 97久久免费| 天美国产三级传媒| 超碰免费在线| 国产成人网站在线观看| 亚洲精品亚洲人成在线麻豆| 中文字幕一区二区三区高清| 色网在线视频观看免费| 无码高清少妇久久| 青青免费在线视频一区| 久久久久久久久久久久97| 亚洲狠狠入| 老熟女综合网 | 婷婷五月天久久精品视频一区二区三区 | 中文字幕日韩精品久久| 色色毛片| 影音先锋日本乱伦| 麻豆三极片| 国产97视频免费观看| 亚洲中文字幕熟女| 亚洲Av无码成人精品国产| 日韩不卡毛片Av免费高清| 欧美视频边做饭边橾| 国产精品久久久久av| 亚洲激情在线| 欧美色997| 啊啊啊不要嗯嗯在线观看| 亚洲久草AV色图| 91在线丝袜| av2014 日韩在线中文字幕| 91中文字幕制服丝袜免费视频| 欧美色图自拍| 一级做a爰片久久毛片图片| 激情av| 欧美日韩人妻婷婷一区| 欧美v亚洲v综合v国产v妖精| 91九色网| 欧美爱国产综合、| 亚洲制服aⅴ中文字幕| HEYZO高无码国产精品227| 精品久久久久久久久久久久| 欧美97爱| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 1024人妻熟女一区二区三区| 刺激性视频黄页| 亚洲色图欧洲| 啪啪啪综合网| 中文字幕一区二区三区人妻不卡| 粉嫩不卡一区二区性爱| 亚洲综合图片在线| 免费一级a毛片久久久久久鸭绿欲| 亚洲中文国际强奸字幕| 四虎影视永久在线免费| 日韩肏逼视频| 淫妻综合网| 欧美人妻制服| 手机看片1024你懂的国产| 久久草视频污视频| 黄骗免费| 亚洲做性| 五月天综合| 亚洲欧美小说| 中文字幕乱碼在线| 欧美精品23| 亚码人妻| 国产视频一区二区免费| 久久久久婷婷精品av电影| 午夜理论片在线观看免费| 欧美极品色| 久久大香蕉| 国产无码精品无码| 亚殴在线| 丰满人妻一区二区三区四区| 久久久成人免费av电影| 婷婷五月天激情网| 乱抡国产91| 国产大学生口爆吞精合集| 十八禁成人网站在线观看| 久久精品中文字幕无码l| 九九九九九九九九九九九免费国产| 成人七区| 多毛小伙内射老太婆| 欧美亚洲激情一二三| 丁香色色网| 99热这里只有精品18| 黑人天8A∨高清网站| 中文字幕第9页萱萱影音先锋| 国产熟女无套内射| 天天插天天插| 青草地一本线一区二区三区| 入口操逼网站| 日本中文字幕一区| 精品无人区麻豆乱码1区2区图片| av橘色网站| 超碰98综合网| 性久久久| 色综合91| 亚洲精品xxx| 日韩在线97| 色黄色美女大长腿午夜视频| 人妻激情在线视频| 91一起操| 欲香欲色| 新视频sss国产| 国产AV高清AV无码| 啊啊啊啊操死我| 天天夜夜久久| 人人爱人人操人人性| 91黄站| AV天堂男人的天堂| 亚洲欧美日韩综合在线尤物| 91w欧美| 搡老女人老91妇女熟女| 亚洲日本韩国在线| 国产精品久久久久无码A√| 精吧天堂| 天天流夜夜操| 少妇干B| 88xx成人精品视频| 啪啪啪亚欧美视频| 国产精品久久久久999| 偷拍欧美激情| 国产a级午夜毛片| 乱伦一二三区| 加勒比海色香蕉婷婷| 九九热午夜欧亚国产视频| 亚洲中文字幕妇伦久久| 在线观看无码三级少妇| 91久久久亚洲| 色激情综合网站| 欧美性夜| 9久久久久久| 亚洲诱惑天堂| 天天热精品| 日韩少妇在线视频| 98福利在线视频| 亚洲男人的天堂AV| 国产91精品久久久久久久网曝门| 97人人中文网| 夜夜久久| 国产精品久久久久久夜夜夜夜| 91色爽欧美| 亚洲高清在线| 国产欧美日韩在线观看麻豆传媒公司| 亚洲一级特黄大片在线播放91| 成人国产视频在线观看| 天天肏天天干| 国产白丝av| 天天色综合影视网| 四虎影视永久在线观看精品免费网站| 久久一二三四不卡 | 亚洲欧洲国产综合av| 国产免a费看黄片在线| 国产精品探花色| 亚洲激情片| 欧美性爱精品七区| yellow网站免费观看日韩高清无码| 色操逼网| 五月丁香六月婷综合成人综合 | 5252色欧美在线| 久久、1234| 性色乱AV一区二区| 欧美亚洲日韩16色| 亚洲 欧美 综合 91| 亚洲熟妇白浆无码AV| 亚洲97在线| 91色综合| 人人操 欧美| 97人人操人人干| 色九九九综合| 人人操人人肉久久精品| 天美传媒麻豆一区二区三区国产精| 青青草成人视频在线观看二区| 97资源制服丝袜| 精品大久久| 欧美女同在线| 五月丁香激情四射| 爱av免费| 91粉嫩萝控精品福利网站_精品影音先锋国| 五月天社区| 亚洲AV乱码专区国产噜噜亚洲| 九九九九精品一区| 97超碰人妻| 中文字幕亚洲永久精品| 麻豆精品久久久久久久| 9ⅰ久久久天天| 久草午夜| 97自拍视频在线| 欧美日韩亚洲天堂网| 校园春色 亚洲| 综合久久久久久久综合网| 九九色色| 欧美在线视频观看一二三四区高清| 天天日夜干| 久久久精品中文字幕爱豆| 91精品国产麻豆国产自产在| 欧美色棕合| 亚洲中亚日激情视频| 国产精品久久天天干| 可以免费观看的AV| 日1区2区3区2020| 尤物视频一区| 色 亚洲 91| 欧州一区二区三区四区| 欧美AB在线观看| 香蕉视频精品亚洲一区二区三区在线播| 日产狠狠干| 青青草色AV| 色5月婷婷| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 日韩 欧美 校园一区| 9久在线视频只有精品| 久久欧美按摩999| 综合97| 久久久艹艹艹| 影音先锋日本乱伦| 亚洲精品 欧美精品| 成人蜜乳小视频网站| 超碰色中文| 人妻精品一区二区在线| 久久精品亚洲成a人天堂| 国产日本一区二区三区蜜臀在线观看| 亚洲啪啪性视频| 国产精品久久| 麻豆精品三区视频| 另类图片五月| 亚洲日韩国产欧美综合v| 欧美日韩传媒| 国产精品3| 黄页18禁| 天天草天天干天天日| 99国产精品| 国产女主播视频在线观看| 99热97| 亚洲午夜福利在线影院| 日韩成年人性爱视频| 精吧天堂| 天美一二三在线观看Av| 国产久久久久久久久一区二区 | 老司机午夜精品视频| 精品欧美日韩在线观看| 无码99| 亚洲福利中文字幕在线| 97在线精品观看视频| 综合第一页| 国产精品久久久777| 夜夜爽33333| 婷婷丁香五月天综合东京热| 国产精品久久aV| 亚洲电影91| 亚洲国产一级中文综合久久天堂在线免费观看| 国产成人网址| 再深点灬舒服灬太大了好硬好爽| 中文字幕黄片在线| 丰满人妻一区二区三区色-百度| 亚洲。天堂。日本在线观看| 国产欧美成人精品| 九九精品美女高溯喷水| 日本特黄f c2| 亚洲丝袜色| 五月婷婷性爱| 日韩欧美国产一区二区三区四区| 内射老妇BBWX0C0CK| 啊啊啊草死我| 99中文字幕| 99久在线精品99re8蜜桃| 九九免费影片| 麻豆一区二区三区精品| 99在线观看无大码| 操美女人妻| 欧美一区91大爱| www.色婷婷| 99re国产中文字幕| 秋霞欧美性爰视频| 五月丁香综合啪啪| 无码伊人久久大杳蕉中文无码| 狠狠色噜噜狠狠狠狠狠色综合久久 | 亚洲丝袜少妇在线| 熟妇色99| 九七超碰| 国产精品分类在线观看| 1769一区| 久久人人爽爽人人爽人人片αV| 在线综合 亚洲 欧美中文字幕| 日韩无码一级黄色av片| 香蕉国产精品麻豆亚洲欧美日韩 | 亚洲精品骚逼| 大香蕉综合久久| 伊人一区二区三区| 久草男人天堂| 色婷婷一区二区三区久久午夜成人不| 人妻精品一区一区三区蜜桃91| 国产AV天美传媒一区二区三区 | 亚洲高潮少妇| 国产原创剧情在线丝袜| 国语对白在线播放视频| 91一起操| 色嘟嘟人妻天堂网| 躁躁日曰躁2020| 亚州综合图片| 欧美激情黑人| 色爱天堂| 国产老太乱伦一区| 中文字幕日韩专区精品系列| 无码外流操逼视频| 午夜福利免费精品视频| 国产久久久久久久久一区二区| 激情综合婷婷| 18精品一区| 91天天综合网,天天综合网| 欧美A√综合网 | 天美91| 日B操| 美国一区二区三区视频| 国产强奸超碰AV| 色五月婷婷中文字幕| 天天91~综合入口| 东京热一区二区三区四区五区六区| 91天美传媒在线| 国产吹潮女在线观看| 国产区在线| 国产精品人妻免费精品| 国产自产自拍| 亚洲色色色| 亚州再线| 97超碰伊人| 蜜臀在线视频| 人妻一区视频| 亚码激情| 97丝袜亚洲在线播放| 欲香欲色综合天天伊人| 国产在线观看91精品一区| 日韩国产不卡在线视频| 99免费视频| 精品人妻视频一区二区三区蜜桃视频| 夜夜精品视频一区二区| 欧美日韩国产成人高清| 欧洲一级性爱视频在线观看| 国产九九久久久精品| 91三级理论片播放器| 天天日天天爽| 蜜屁Av| 色777999综合| 日韩欧美大片免费高清啪啪| 一级免费啪啪片| 九久9热| 97超色| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 国产免费内射视频| 91碰超| 少妇高潮99p| 91亚洲狠狠色| 岛国激情视频软件| 中文字幕一区二区三区人妻少妇在线| 色97欧美| 欧美劲爆视频一区二区| 97国产天堂岛| 熟妇综合一区二区三区| 日本99热| 蜜臀va69| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 国产18精品亚洲精品| 久久国色天香香蕉| 欧洲站一级二级三级h| 国产精品第一区第一页| www.婷婷| 91模特在线观看| 久久国产乱子伦精品免费女人| 日韩精品一区二区三区四虎影视| 国产视频小说| 欧美精品久久久久久久丰满| 久青草影院| 91精品少妇搡搡搡| 影视综合无码少妇| 熟妇熟女一区二三区| 高精欧美色| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 超碰人妻在线| 操老熟女AV| 国产精品久久久久久照片| 啪啪91| 97在线日韩中文字幕| 中日亚韩免费视频| 好淫网一二三视区| 78操B| 91色久| 欧美青青草视频| jk白丝没脱就开始啪啪| 台湾佬激情综合| 日本欧美不卡| 五月丁香婷婷综合| 亚洲日精品| 噜噜噜无码AV一级一级久久影院| 暴力av在线| 九九色逼| 亚洲图片欧美色| 花野真衣| 色哟哟 日韩精品| 人妻一区二区三区| 国产日韩无码一区二区三区久久区| 亚洲欧美中日韩| 91在线精品一区二区三区| 天天做天天爱天天爽AV| 精品欧美А∨无码黑人大荫蒂| 男人久久精品| 综合久久六月久久婷婷| 一区二区播放| 丁香六月激情综合| 亚洲图片欧美色| 内射老妇BBWX0C0CK| 麻豆性爱视频在线播放| 欧美日韩亚洲一区二区在线观看| 啊啊啊啊啊啊啊啊啊在线观看| 免费簧片在线观看| 日本ZZ高免费A级视频| 九九人人操| 丰满人妻一区二区三区| 97色色色综合网站| 精品人妻一区| 九九九不卡| 91蜜臀熟女| 国产精品无码成人精品| 亚洲日韩乱码中文无码蜜桃臀网站| 日韩精品亚洲专区在线影视| 男人天堂2019| 亚洲av总站| 亚洲国产奇米影视久久| 日韩综合第八区国产精品| 天天日少妇逼AV| a片在线播放| 国产精品3| 人妻少妇久久久| 国产精品久久久久久亚洲色欲| 大香蕉之青青草原| 欧美婷婷| 中文字幕AV乱伦| 人妻少妇无码| 精品久久久中文字幕不| 国产 热久久久久国产精品| 大鸡巴久久| 97干色天堂| 黄片www.| 日韩精品资源专区二区| 无码人妻丰满熟妇区毛片| 色欧美天天| 精品九九国产无码| 无码人妻一区二区三区四区老鸭窝| 男人下部插入女人下部| 日本性爱网址| 91内射| 亚洲鸥美色图| 粉嫩国产精品久久粉嫩| 黄页网站免费高清在线观看| 777超碰| 午夜毛片高清免费不卡| 亚洲天堂,男人| 欧美性爱日韩性爱| 精品在线蜜臀| 蜜桃狠狠色伊人亚洲综合 | 狠狠2050在线观看| 97超碰国产精品| 极品美女福利在线观看| 探花视频免费观看国产专区| 亚洲色棕合| 佐山爱中文字幕| 六月天婷婷| 欧美少妇性爱网站| 香蕉欧美| 中文字幕乱妇免费视频| 新精精品久久精品| ,国产乱人伦精品一区二区三区| av日韩在线观看电影| 欧美极品美女aaaaaa级黄片| 殴美色网| 天堂网 主播 亚洲| 亚洲91网。| 天美91| 九99久久| 天天看高清麻豆| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 国产AV久久久蜜爱影集| 在线观看无码三级少妇| 国产福利合集| 91制服丝袜| 亚洲天堂电影网| 国产精品。| 老女人日韩美91| 九九热在线精品视频| 亚洲一本色道中文无码aV天美| 午夜a成v人电影| 欧美色图片| 猛猛干| 成人区人妻精品一| 看看日B真人视频| 老司机久久| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 欧美日韩激情无码专区| 无码人妻精品一区二区三区99不卡| 青草一区二区| 99在线观看视频在线高清| 久久妇| 中文字幕精品久久久久人妻红杏ⅰ| 青娱乐 成人娱乐在线| 99色| 人人操AV| 色色色热| 天天爽夜夜操| 色综合色| 啪啪啪综合网| 欧美日韩91| 精品-91人妻子系列| 在线精品福利免费播放| 日韩精品 视频一区二区| 国产一区二区在线播放量| 国产福利一区二| 欧美第一页| 另类图片天天影视| 少妇一区二区三区| 蜜臀99久久| 神马久久久久久| 久久夜夜| 亚洲精品一二牛牛| 91看黄片| 日韩无码三级影院| 一类av片在线看| 性色av蜜臀av色欲aV| 国产成年免费大片黄在线观看| 国产亚洲精品美女久久久| 久久亚洲欧美中文字幕国语| 天堂精品| 91成人亚洲色图| 漂亮人妻被强中文字幕hd| 色老大| 东北熟女91| 亚洲精品久久久久毛片A片拉屎 | 婷婷91| 九九热最新| 国产乱码久久| 区一在线观看| 中文字幕十五区| 操淫穴亚洲五月丁香| 超碰视97中文| 麻豆熟妇乱妇熟色A片在线看| 日韩九九九| 欧美一级在线观看成人 | www.婷婷| 区日韩亚洲乱码av电影| 欧美图片色综合| 中文字幕AV片| 亚洲另类色综合网站| 啊啊啊啊啊啊在线| 国产无马在线| 操逼操逼逼操操逼91| 日本欧美国内在线| 混色激情av| 九一精品牛牛一区二区| 丁香7月婷婷| 久久久久久久久一区二区三区| 激情小说在线视频| 男人天堂黄片| 2024人人操人人摸| av在线浏览| 天天插天天操天天摸天天射天天看| 啊啊在线| 亚欧无码线免费观看视频| 中文字幕亚洲永久精品| 狠狠干狠狠色| 国产精品色哟哟| 亚洲成人帖图| 老司机午夜精品视频| 国产区91柔拿会所技师| 亚洲综合五月天婷婷丁香| 成人色女网| 男人天堂最新手机版在线青青草| 啊啊啊无码| 岛国大片在线观看网站入口| 日日夜夜狠狠| 在线亚洲精品久久久| 精品在线78| 亚洲A曰本VA欧美VA视频| 天天做日日爱夜夜爽| 欧洲综合视频| 亚州国产成人精品女人久久| 囯产精品久久久久久久久久二区三区| 欧美aa一级片| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 啊啊啊啊啊啊啊啊啊啊在线观看| 91国产丝袜白虎| 国产亚洲欧美每日在线| 丁香五月色情| 东京热不卡视频| 综合网天天| 日本一本道A级黄色毛片试看60分钟| 狠狠狠一区二区三区| 免费看国产大AB| 精品无码久久久久久久杏吧| 国产精品一区二区 尿失禁| 在线啊啊啊啊| 99热精品在线观看| 欧美性爱第一区| 爽爽淫人网| 国产精品乱码久久久久久| 午夜啪| 五月激情啪啪| 久久综合久色欧美综合狠狠 | 3p国产欧美99热| 日韩欧美被操黄免费观看| 96麻豆精品一区二区三区| 久久久久久国产手机AV| 国产婷婷一区| 美女诱惑久久| 日本精品不卡一二三区| 青娱乐大香蕉| 91狠狠综| 五月丁香啪啪啪| 加勒比久久av| 国产精品视频麻豆入口| 操我啊啊啊啊啊| 日韩精品-原创伙伴| 亚洲乱码尤物193YW| 欧美国产一区二区三区麻豆传媒| 亚洲精品97| 五月丁香久久| 久热精品在线| 亚洲乱码国产乱码精网站| 色五月天AV| 亚洲中文字幕熟女| 大香蕉操久久| 欧洲精品二区| 性爱av网站| 国模91| 日韩 欧美 视频 在线 一区| 97精品视频免费| 无码不卡亚洲成?人片| 天天日天天操心| 91操熟女视频 | 超碰1024久久| 亚洲欧美日韩制服另类| 老鸭窝亚洲毛片| 后入国产| 七久久久| 亚洲丝袜诱惑| 久久极品一区二区| 午夜一区| www.夜夜操| 熟妇人妻精品一区二区| 婷婷丁香五月激情啪啪| 成人夜夜| 激情专区综合| 欧美97av| 91狠狠综合久久久| 亚洲女优有码无码高清| 国产精品久久久鸭无码的功能| 91 国产丝袜在线播放-百度| 熟女精品va中文字幕| www.男人天堂| 操逼无码一区| 亚洲在钱| 日本123区操B视频| 婷婷人妻激情| 婷婷亚洲综合| 精品日韩| 熟妇亚洲一区二区三区| 日本黄大片在线观看视频| 免费农村成人少妇人妻Aa一区二区视频 | 福利社区午夜一区二区| 91 丝袜在线观看| 秋霞无码av鲁丝片一区| 久久久91福利姬| 99精品久久久久久久婷婷蜜桃| 亚州五月| 激情五月婷婷| 91狠狠综| 干b在线性社区| 欧美性生活免费网| 久操影视| 亚洲高清在线| 国产乱子伦一区二区三区在线观看| 超碰日本97美女人妻人人玩人人爱 | 中文三一区| av中文字幕在线熟女| 看日韩黄片| 97日视频| 精品v日韩欧美国产| 久久精品操| 婷婷亚洲中文字幕在线| 人人搞人人插人人操| 亚洲精品欧洲精品| 欧美性爱三区二区| 国产一区二区精品久久久不卡蜜臀| 久久久婷| 秋霞网无码| 中文字幕久久亚州无码| 韩国一级婬片A片AAAAA| 91亚洲在线| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚洲第一无码播放立川理惠| 国产9l 大屁股| 人妻精品4K4K4K4K4| 欧美极品性爱天天射| 久久久涩| 啊好爽受不了无码| 手机在线人成免费视频| www欧美91| 久久精品一区| 在线观看综合精品亚洲| 天天日天天干少妇日| 四虎AV影视国产精品亚洲精品| 日韩国产乱子伦App| 精品国产乱码久久久A| 狠插 制服 自拍| 激情五月天丁香社区| 97在线观看免费视频| 亚洲性少妇| 天天操天天插| 日韩人妻有码免费视频| 蜜桃天美传媒AV一区二区三区| 日韩精品三区四区| 亚洲国产麻豆一区二区三区| 五月情色天| 国产精品丝袜久久亚洲不卡| 六月婷婷激情| 中国国产精品一区视频| 超碰97 线线 在现| 91真人天天在线| 三级三级三级日本99| 午夜视频好爽啊| 精品九九九九九九| 鸥美极品| 国产精品久久久视频| 女人双腿搬开让男人桶| 日韩无码一级黄色av片| 久久9免费视频| 91骚妇| 亚洲色五月| 日本午夜操逼| 翔田千里A片一区二区| 亚洲伊人青青草| 99re69综合| 婷婷五月天基地| 奇米狠999| 国产综合日韩伦理| 欧美综合综合| 国产视频第2页| www.97在线| 日欧操屄视频| 超碰成人公开| 男女啪啪网站免费视频| 精品国产99999| 日日噜噜夜夜久久亚洲一区二区| 久久久com| 120分钟婬片免费看| 欧美大香蕉同搞| 在线毛片片免费观看| 中文字幕乱妇免费视频| 国产第二页| 综合激情97 | 国产大学生高潮在线播放| 日韩人妻有码免费视频| 久久久少妇| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 亚洲成人ab| 日韩色图 一区二区| 男人 天堂 日 亚洲| 久久手机视直播| 一区二区三区四区色图| 人人色人人操在线| 1禁看欧美黄片免费看| 无码免费在线观看黄色片| 狠狠爱综合网| 亚洲人妻爽爽爽| 清纯唯美综合亚洲| 中文字幕人妻丝袜乱一区三区| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 啊a一区在线| 亚洲人成网www| 久久久久国产无av| 人人摸人人叼| 色成人Www精品永久观看| 无码 黑人一区二区三区| 极品销魂美女一区二区| 97超碰精品| 欧美牲| 亚洲在线91| 中文字幕三四五区| 亚洲交性| 熟妇人妻丰满久久久久久久无码| 精品人妻一区二区蜜桃视频 | 亚洲激情 欧美色图| 91大神电影天堂| 91久久久久久久久久久| 日本久久久久久久久| 欧美另类色图片| 夜夜一区二区| 国产精品一区人妻精品阁在线| 丁香五月激情五月| 啊啊啊啊一区| 久久侵犯人妻爽爽爽| 日韩性色b| 18一区二区三区| 欧美日韩免费专区在线| 亚洲欧美天堂在线| 射欧美综合| 区二区亚洲婷| 中文字幕AV片| 欧洲亚洲综合| 久肏视频字幕| 亚洲无码日韩电影| 色五月AV| 三级日本一区二区三区| 美国黄片aaa| 懂色av色欲av蜜臀av| 国产精品视频一区二区三区八戒| 久草网站免费在线观看| 久久精品店| 久久久久婷婷| 成人夜夜爽| 亚洲精品丝袜| 性色av一区二区| 亚洲清纯唯美| 男生通女生屁股| 亚洲资源站| 国产资源中文字幕在线| 精品人妻1区| 日韩精品黄片免费观看| 国产日韩欧美三级片| 欧美亚洲丝袜人妻制服99| 亚洲国产一区二区三区在线| 久热精品色情| 超碰碰小说97| 色九久| 成人国产视频在线观看| 欧美黄色片在线播放| 国产激情av女片自拍| 九九AV| 一道本东京热加勒比一区二区三区| 91精品丝袜久久久久久无码人妻| 激情五月天校园春色网| 精品少妇高潮久久| 亚洲男人天堂av| 国产操逼视频在线观看| 日本精品不卡一二三区| 日韩三级一区 | juliaann欧美丝袜办公室| 四虎精品永久在线播放| 台湾成人无码AV| 91丨九色丨国产打屁股| 蜜桃久久久久久久| 免费97视频| 男人的天堂一区| 国产精品露脸在线观看| 五月综合婷婷久久网站| 亚洲情色第一页| 搞中出视频在线观看| 欧美日韩不卡传媒| 囯产精品久久久久久久久久梁医生| 国产51色综合久久免费| 久久精彩免费视频| 欧美色天堂网在线视频| 超碰天天去日穴| 天天看精品动漫视频一区| a级成人毛片免费视频高清| 猛交交| 天天色踪合| 亚洲欧美日韩激情不卡| 东北丰满熟女国产一区| 中文字幕 人妻不满 在线视频| 2019天天操天天爽天天拍| 丝袜视频网国产90| 国产精品久久久久久久无码AV| 久草福利在线资源站| 伊人青青一区成人视频在线观看区| 91少妇通奸网站| 精品一区二区三区国产| 在线观看黄色电话| 国产a级精品| 欧美色91| AV和黑人在线播放| 九九九九久久久| 天堂综合| 欧美性爱第一页久久| 色噜噜综合网| 97bbn| 青娱乐休闲视频在线观看| hd成人一区二区在线| 欧美天天谢综合网| 春色91| 亚洲天堂7777| 久草精品国产蜜臀| 亚欧美色| 在线性黄高清免费视频| 韩国女主播青草在线| 亚洲熟女av中文字幕| 日本操BAV| 天天干天天日天天射黄色片| 九九草| 国产精品久久久三级无码| 蜜桃色院一区久久| 亚洲欧美另类激情小说| 中文字幕黄色片| 四虎在线观看网站| 无码区蜜乳| 亚洲情色五月天 | 韩国嫰模上门援交视频| 日韩精品在线放| 国产11页| 丝袜美腿操av| 亚洲黄色网址视频| 性生活无遮挡纯毛片在线看| 精品99999| a久久| 神马久久免费电影观看| blacked精品一区国产| 96免费视频在线| 欧美人与动性人交a| 欧美亚洲国内自拍| 日本大香蕉综合网红本杳社区| 亚洲色图殴美色图激情乱伦| 天操老女人| 免费成人在线观看91| 久jiu久神马影院| 91亚洲欧美激情| 成人AV在线电影| 欧美亚洲清纯| 欧美强奸乱| 97超碰超欧美。| 二男一女成人A片| 久久 亚洲 日韩 人妻| 麻豆视频国产一区二区| 富二代亚洲精品99| 97操| 啊啊啊com| 伊人天天久久动态图| 亚洲欧美一区二区三区在钱蜜桃| 国产成人精品网站| 色五月激情综合网| 日韩无码人妻中字久久三区四区| 囯产乱伦一区二区三女| 99精品丰满人妻无码| 91成人久久 | 欧美成人精品欧美一级乱黄一区二…| 国产一区二区三区精品观看啪| 啊啊啊啊好疼视频| 粉嫩粉嫩一区性色AV片| 亚洲电影91| 美中日韩无码| 欧美最大综合网| 亚洲高清无码AAA久久久精品| 高清国产成人无码| 亚洲免费在线探花| 传媒免费一区二区三区| 国产美女自拍AV| 牛牛久久国产精品视频一二三| 日本精品网站在线中文| 丝袜av一区二区三区| 二男一女成人A片| 国产后入内射| 黄片直播三级黄片两女一男| 九九超碰综合网| 99久久99九九99九九九| 欧美性爱超碰97| 99这里都是精品| 青草综合| 一区二区三区男女操逼黄色小电影| 免费精品国偷自产在线在线| 国产男女无套97| 中文字幕乱在线伦视频中文字幕乱码在线| 欧美亚洲se91| 日韩少妇一区二区三区| 欧美韩日精品99综合| 男人的天堂2019| 欧洲Au麻豆| 国产成年精品高清在线观看91| 欧美天堂第二区| 午夜男女爽爽爽在线视频| 在线欧美亚洲| 日本天堂网| 久久精品日韩| 2020中文字幕在线| 五月天偷拍| 日本αv| 狠狠亚洲| 亚州操逼网| 亚洲国产97| 久久久久久久久久久久黄色| 国产综合网站在线播放 | 狠狠操官网| 国内成人圈中文字幕无码视频| 色五月激情网|