日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

CMSIS-DSP源碼審計(jì):Cortex-M平臺信號處理的優(yōu)化與固件落地指南

CMSIS-DSP源碼審計(jì):Cortex-M平臺信號處理的優(yōu)化與固件落地指南 我花了整整兩個(gè)周末把 Arm-CMSIS-DSP 的源碼從頭到尾篩了一遍不是走馬觀花看文檔是真正把a(bǔ)rm_math.h里那些宏定義、內(nèi)聯(lián)匯編、循環(huán)展開、Q 格式定點(diǎn)運(yùn)算全部捋了一遍。這篇文章不打算寫成 API 手冊那玩意官方文檔夠全了我想從“源碼審計(jì)”和“工業(yè)固件落地”這兩個(gè)更實(shí)際的視角切入——如果你正準(zhǔn)備在 STM32、NXP、GD32 這類 Cortex-M 平臺上做電機(jī)控制、振動分析、音頻后處理或者傳感器融合這篇文章應(yīng)該能幫你少踩很多坑。先交代一下背景。CMSIS-DSP 是 ARM 官方為 Cortex-M 系列內(nèi)核提供的信號處理庫它的定位非常明確在不用 DSP 芯片的前提下讓普通 MCU 也能跑得動 FFT、FIR/IIR 濾波、矩陣運(yùn)算、PID 這類常見算法。對于功耗敏感、成本敏感、但又需要一定算力的工業(yè)場景這個(gè)東西幾乎是繞不開的選擇。但我要說實(shí)話網(wǎng)上能搜到的大多是“怎么調(diào)用 API”“怎么用 pack 安裝”真正深入到源碼層面、把庫的設(shè)計(jì)邏輯和性能取舍講清楚的內(nèi)容非常少。所以我這篇的核心是源碼審計(jì)——我會帶你去看庫的架構(gòu)分層、核心算法的實(shí)現(xiàn)思路再結(jié)合我實(shí)際在工業(yè)項(xiàng)目里踩過的坑給出固件落地層面的具體建議。適合誰來讀如果你只是想在 Cortex-M0 上做個(gè)簡單的 FIR 濾波那說實(shí)話看文檔就夠了但如果你要在 Cortex-M4/M7/M33 上做需要精確延時(shí)、定時(shí)中斷、有限 RAM 約束下的實(shí)時(shí)信號處理或者你需要根據(jù) CPU 主頻和 Flash 占用去選庫、裁剪庫、調(diào)優(yōu)參數(shù)那么這篇文章就是你想要的。我會盡量把關(guān)鍵的“為什么這么設(shè)計(jì)”講透而不是只告訴你“怎么調(diào)用”。1. 架構(gòu)全景CMSIS-DSP 到底是怎么組織的1.1 從 CMSIS-Core 到 CMSIS-DSP 的層級關(guān)系搞嵌入式的人對 CMSIS 這個(gè)名字應(yīng)該不陌生但很多人其實(shí)沒有搞清楚它的內(nèi)部層級。CMSIS 是一整套軟件框架CMSIS-Core 是最底層負(fù)責(zé)把 Cortex-M 內(nèi)核的寄存器、系統(tǒng)定時(shí)器、NVIC 中斷控制器這些硬件能力封裝成統(tǒng)一的 C 接口CMSIS-DSP 是構(gòu)建在 CMSIS-Core 之上的信號處理庫它依賴 Core 提供的數(shù)據(jù)類型定義和編譯器抽象。這個(gè)依賴關(guān)系決定了你在使用 CMSIS-DSP 之前必須先有正確的 CMSIS-Core 環(huán)境。我用 STM32CubeMX 生成工程時(shí)它默認(rèn)會帶上 CMSIS-Core 的 startup 文件和系統(tǒng)初始化代碼庫移植的兼容性問題多半出在“自己手寫的工程模板”上。如果你用的是 GCC 工具鏈還要注意 CMSIS 版本要和編譯器版本匹配否則__ASM、__INLINE這類內(nèi)建宏可能解析失敗整個(gè)編譯直接掛掉。1.2 庫的內(nèi)部模塊劃分與文件結(jié)構(gòu)從源碼目錄上看CMSIS-DSP 按功能分成幾大塊BasicMathFunctions加減乘除、點(diǎn)積、ComplexMathFunctions復(fù)數(shù)運(yùn)算、FilteringFunctionsFIR、IIR、相關(guān)運(yùn)算、TransformFunctionsFFT、DCT、MatrixFunctions矩陣運(yùn)算、StatisticsFunctions均值、方差、RMS、SupportFunctions數(shù)據(jù)拷貝、類型轉(zhuǎn)換、InterpolationFunctions線性/三次插值、ControllerFunctionsPID。這些模塊之間的依賴是單向的簡單來說就是“Support 提供基礎(chǔ)工具Basic 和 Complex 提供核心算子Filtering 和 Transform 依賴核心算子Controller 和 Statistics 則更多是上層應(yīng)用封裝”。這樣的分層帶來的直接好處是——你可以通過裁剪源文件來控制 Flash 占用而不是一整個(gè)庫全編譯進(jìn)去。我在實(shí)際項(xiàng)目里一般會直接改 CMakeLists 或者 Keil 工程里的源文件列表只保留用到的模塊。舉個(gè)例子一個(gè)三相電機(jī)控制器如果只需要 PID 和 Clarke/Park 變換你完全可以只保留ControllerFunctions和SupportFunctions編譯出來的增量大概只有 3~5KB Flash這對 32KB Flash 的小芯片意義極大。1.3 從實(shí)例結(jié)構(gòu)體看設(shè)計(jì)哲學(xué)CMSIS-DSP 的一個(gè)核心設(shè)計(jì)模式是“實(shí)例結(jié)構(gòu)體”instance structure。以 FIR 濾波器為例你要先定義一個(gè)arm_fir_instance_f32結(jié)構(gòu)體調(diào)用arm_fir_init_f32來初始化之后每一次濾波都調(diào)用arm_fir_f32傳入該結(jié)構(gòu)體指針。arm_fir_instance_f32 fir; float32_t firCoeffs[64]; // 系數(shù)緩沖區(qū) float32_t firState[64 BLOCK_SIZE - 1]; // 狀態(tài)緩沖區(qū) arm_fir_init_f32(fir, 64, firCoeffs, firState, BLOCK_SIZE);為什么要設(shè)計(jì)成這種“初始化 每次調(diào)用”的模式而不是直接把參數(shù)全傳進(jìn)函數(shù)里核心原因是實(shí)時(shí)系統(tǒng)中每次函數(shù)調(diào)用的參數(shù)傳遞是有開銷的尤其是 Cortex-M0/M0 這類沒有硬件除法指令、寄存器數(shù)量有限的內(nèi)核參數(shù)多了性能損耗很可觀。把不變的東西系數(shù)、狀態(tài)指針、塊大小打包成結(jié)構(gòu)體函數(shù)調(diào)用時(shí)就只需要傳一個(gè)指針。這在 DSP 場景里是常規(guī)操作但對于剛從 MCU 裸機(jī)編程過來的人來說需要適應(yīng)這種思路——它本質(zhì)上是“用 C 模擬硬件外設(shè)寄存器組”的思路。2. 源碼審計(jì)濾波器、FFT、矩陣是這么干活的2.1 FIR 濾波器實(shí)現(xiàn)細(xì)節(jié)狀態(tài)緩沖區(qū)的秘密FIR有限脈沖響應(yīng)是嵌入式信號處理里最基礎(chǔ)的模塊。CMSIS-DSP 的 FIR 實(shí)現(xiàn)采用直接 I 型結(jié)構(gòu)核心循環(huán)就是乘累加運(yùn)算。但如果你只看arm_fir_f32的代碼會發(fā)現(xiàn)一個(gè)在文檔里沒細(xì)講的設(shè)計(jì)狀態(tài)緩沖區(qū)大小不是濾波器階數(shù)而是numTaps blockSize - 1。原因在于庫支持的是“分塊處理”block processing每次調(diào)用處理固定數(shù)量的采樣點(diǎn)。為了保持濾波器的記憶效應(yīng)上一塊數(shù)據(jù)末尾的numTaps - 1個(gè)采樣需要保留到下一塊所以狀態(tài)緩沖區(qū)要預(yù)留這個(gè)額外空間。如果你在移植時(shí)把狀態(tài)緩沖區(qū)大小算錯(cuò)了表現(xiàn)不是編譯報(bào)錯(cuò)因?yàn)?C 數(shù)組不越界檢測而是濾波輸出在塊與塊的交界處出現(xiàn)瞬態(tài)跳變。我排查過一起工業(yè)壓力傳感器的毛刺問題最后的根因就是工程師參考舊代碼把 FIR 狀態(tài)緩沖區(qū)大小硬編碼成了numTaps導(dǎo)致每個(gè)處理周期丟掉歷史狀態(tài)輸出波形每隔固定點(diǎn)數(shù)就有一個(gè)階躍。這個(gè)坑非常隱蔽示波器上看起來就是周期性毛刺很難想到是濾波器狀態(tài)被截?cái)嗔恕?.2 定點(diǎn) IIR 濾波器的穩(wěn)定性與溢出保護(hù)IIR無限脈沖響應(yīng)濾波器在嵌入式里主要用在需要低階數(shù)、高計(jì)算效率的場景比如心率信號去基線漂移、電源噪聲的 50Hz 陷波。CMSIS-DSP 提供arm_biquad_cascade_df1_f32和arm_biquad_cascade_df2T_f32兩種結(jié)構(gòu)分別對應(yīng)直接 I 型和轉(zhuǎn)置直接 II 型。實(shí)際項(xiàng)目里我建議用 DF2T也就是 Transposed Direct Form II。原因是它在定點(diǎn)實(shí)現(xiàn)時(shí)對中間狀態(tài)的要求更寬松不容易因?yàn)橄禂?shù)極端而產(chǎn)生內(nèi)部溢出。DF1 結(jié)構(gòu)直觀但每個(gè)二階節(jié)的 5 個(gè)系數(shù)如果動態(tài)范圍相差過大中間變量很容易突破 Q15/Q31 的表示范圍。不過要特別注意CMSIS-DSP 的定點(diǎn) IIR 在固件里默認(rèn)按 1.15 格式解釋系數(shù)如果你從 MATLAB 的butter()函數(shù)算出一組 double 系數(shù)然后直接強(qiáng)轉(zhuǎn)成q15_t出來的濾波器可能完全不是你想要的。正確做法是用arm_f64_to_q15或者 MATLAB 的定點(diǎn)工具箱做好定標(biāo)轉(zhuǎn)換成 Q 格式之后再做歸一化。我在代碼里一般會保留一組十進(jìn)制系數(shù)轉(zhuǎn)換工具腳本避免手動算定標(biāo)這一步在工程化時(shí)省心很多。2.3 FFT 的實(shí)現(xiàn)路徑混合基、旋轉(zhuǎn)因子與就地計(jì)算CMSIS-DSP 的 FFT 支持混合基mixed-radix算法內(nèi)部把 N 點(diǎn) FFT 分解成更小的基 2、基 3、基 4 運(yùn)算單元。對 Cortex-M4/M7 這類帶 FPU 和 DSP 指令擴(kuò)展的內(nèi)核庫會自動調(diào)用硬件乘累加指令MLA、VMLA所以浮點(diǎn) FFT 的性能非??捎^。比如 Cortex-M7 跑 1024 點(diǎn)復(fù)數(shù) FFT主頻 400MHz 時(shí)大約 100~200 微秒級別已經(jīng)接近入門級 DSP 芯片的水平。源碼里 FFT 的計(jì)算是“就地”in-place進(jìn)行的也就是說你傳入的輸入緩沖區(qū)在計(jì)算結(jié)束后會被覆蓋成輸出結(jié)果。如果你后續(xù)還要用原始信號記得先拷貝一份。旋轉(zhuǎn)因子twiddle factors是在初始化時(shí)預(yù)計(jì)算好的存在一個(gè)查找表里這個(gè)表可以通過arm_cfft_init_f32自動生成不用擔(dān)心手動建表的問題。還有一個(gè)容易忽略的細(xì)節(jié)CMSIS-DSP 的 FFT 輸出順序不是自然順序而是位反序bit-reversed排列。庫在arm_cfft_f32的末尾會自動做一次重排所以你拿到手的就是自然順序。但如果你為了省時(shí)間跳過官方重排、直接讀數(shù)據(jù)頻譜的橫軸會完全錯(cuò)位而且這個(gè)錯(cuò)位方式還跟 N 有關(guān)排查起來很痛苦。2.4 矩陣運(yùn)算里的訪問模式和 Cache 友好性矩陣運(yùn)算在傳感器融合比如卡爾曼濾波里用得很多。CMSIS-DSP 的arm_mat_mult_f32實(shí)現(xiàn)做了循環(huán)展開目的不只是減少循環(huán)開銷更重要的是讓內(nèi)層循環(huán)的訪存模式更連續(xù)。底層實(shí)現(xiàn)里矩陣數(shù)據(jù)是按列優(yōu)先還是行優(yōu)先存儲CMSIS-DSP 用的是行優(yōu)先row-major也就是說同一行的元素在內(nèi)存中是連續(xù)的。這個(gè)設(shè)計(jì)直接決定了內(nèi)層循環(huán)遍歷方式——連續(xù)讀取同一行Cache 命中率高性能自然好。我自己在 Cortex-M7 上做過一次對比測試同樣做 4x4 浮點(diǎn)矩陣乘法用庫函數(shù)大約比手寫的三重循環(huán)快 1.5~2 倍而且代碼量少得多。對于 Kalman 濾波這種每個(gè)周期都要跑幾十次矩陣運(yùn)算的場景這個(gè)性能差距是肉眼可見的。當(dāng)然手寫代碼里如果你使用了-O3加上-ffast-mathGCC 也可能自動向量化但效果遠(yuǎn)不如庫內(nèi)手工優(yōu)化的匯編。3. 那些藏在源碼里的性能優(yōu)化“黑魔法”3.1 循環(huán)展開的層次和粒度如果你打開arm_mat_mult_f32.c這類源碼文件會發(fā)現(xiàn)內(nèi)層循環(huán)被展開了而且展開的層次不是一層而是兩層。這里我舉個(gè)例子arm_mat_mult_f32里處理 4x4 矩陣時(shí)直接展開了 4x416 次乘累加同時(shí)把 C 語言循環(huán)變量降到最少。為什么要這么做因?yàn)?Cortex-M4/M7 的流水線深度并不深分支預(yù)測能力也很弱每次循環(huán)的變量遞增和比較跳轉(zhuǎn)指令都是純開銷占掉了 ALU 周期。循環(huán)展開的本質(zhì)就是“用代碼體積換取執(zhí)行時(shí)間”屬于典型的嵌入式空間換時(shí)間策略。但這對于 Flash 很小的 MCU 是雙刃劍。如果你把庫整個(gè)編進(jìn)去Flash 占用可能多出 20~30KB但實(shí)際用到的模塊只有濾波器那些被循環(huán)展開的矩陣代碼就全浪費(fèi)了。所以我的建議是——不要整個(gè)庫鏈接用源碼方式定向裁剪只編譯你需要的那幾個(gè).c文件。3.2 Q 格式與定點(diǎn)運(yùn)算的“去浮點(diǎn)化”CMSIS-DSP 對定點(diǎn)支持非常完善特別適合沒有 FPU 的 Cortex-M0/M0以及為了省電不想開 FPU 的場景。Q15 格式1.15 定標(biāo)和 Q31 格式1.31 定標(biāo)是兩種最常見的定點(diǎn)表示庫內(nèi)所有定點(diǎn)運(yùn)算函數(shù)都遵循“乘后移位”的約定??丛创a你會發(fā)現(xiàn)定點(diǎn)乘法基本都伴隨一個(gè)__SSAT飽和指令或者位移操作。原因是兩個(gè) Q15 數(shù)相乘結(jié)果是 Q30需要左移一位回到 Q15但如果直接左移可能溢出所以要用飽和處理指令把它限制在 [-1, 1) 范圍內(nèi)。這看起來是個(gè)小細(xì)節(jié)但如果你自己手寫定點(diǎn)濾波漏掉飽和這一層等信號出現(xiàn)大幅階躍時(shí)輸出就會“卷繞”——本來該限幅的值瞬間翻轉(zhuǎn)成相反符號這在控制系統(tǒng)里會導(dǎo)致執(zhí)行器誤動作。我強(qiáng)烈建議在沒有任何匯編級調(diào)試經(jīng)驗(yàn)的情況下盡量別自己手寫 Q 格式庫函數(shù)。CMSIS-DSP 的定點(diǎn)實(shí)現(xiàn)經(jīng)過 ARM 官方多年的打磨和驗(yàn)證邊界條件處理得很完善直接復(fù)用它是最穩(wěn)的路徑。3.3 SIMD 與 DSP 擴(kuò)展指令的自動調(diào)度Cortex-M4/M7/M33 都支持可選的 SIMD單指令多數(shù)據(jù)和 DSP 擴(kuò)展指令比如SMLAD雙 16 位乘加、SMUAD雙 16 位乘加無累加。CMSIS-DSP 庫里很多函數(shù)用__SIMD32()這類內(nèi)建宏來訪問 32 位視角下的“雙 16 位”配合編譯器選項(xiàng)-O3 -mcpucortex-m7后編譯器會自動把合適的循環(huán)體用 SIMD 指令來實(shí)現(xiàn)。但這里有個(gè)前提條件數(shù)據(jù)必須 4 字節(jié)對齊。CMSIS-DSP 內(nèi)部大量使用__ALIGNED(4)或__ALIGNED(8)來保證數(shù)組對齊。如果你從外部傳入一個(gè)只在棧上定義的局部數(shù)組而編譯器又沒給它做對齊優(yōu)化一旦庫函數(shù)內(nèi)部走了 SIMD 路徑就會觸發(fā)硬件總線錯(cuò)誤HardFault。這類問題在 Keil 的默認(rèn)工程里不常見因?yàn)?AC5/AC6 會自動處理但在 IAR 或者自寫的 GCC 鏈接腳本里很容易踩中。4. 工業(yè)固件落地構(gòu)建配置與裁剪策略4.1 編譯宏與指令集匹配CMSIS-DSP 庫的行為很大程度受編譯宏控制。最常用的集中在這里宏定義作用適用場景ARM_MATH_CM7指定 CM7 內(nèi)核版本Cortex-M7 芯片ARM_MATH_CM4指定 CM4 內(nèi)核版本Cortex-M4/M33 可嘗試ARM_MATH_DSP啟用 DSP 指令如 SIMD有 DSP 擴(kuò)展的內(nèi)核ARM_MATH_LOOPUNROLL啟用循環(huán)展開優(yōu)化編譯時(shí)間不敏感且 Flash 充足ARM_MATH_ROUNDING啟用定點(diǎn)運(yùn)算舍入需要高精度定點(diǎn)濾波ARM_MATH_BIG_ENDIAN切換大端模式極少見一般不要開如果編譯宏和芯片不匹配庫會靜默退回到通用 C 實(shí)現(xiàn)你的性能會掉一截。我的一個(gè)教訓(xùn)是在 CM4 上忘了定義ARM_MATH_CM4和ARM_MATH_DSP結(jié)果 1024 點(diǎn) FFT 耗時(shí)從預(yù)期的 300us 干到了 900us排查了整整半天才發(fā)現(xiàn)是宏沒開對。4.2 鏈接庫或源碼方式的取舍CMSIS-DSP 有兩種集成方式預(yù)編譯庫.lib文件和源碼包含。我個(gè)人的建議是新項(xiàng)目一律用源碼方式也就是把需要的.c文件直接加進(jìn)工程啟用編譯優(yōu)化。預(yù)編譯庫的優(yōu)點(diǎn)是省事、鏈接快但缺點(diǎn)也很明顯——庫的編譯選項(xiàng)是 ARM 官方預(yù)設(shè)的不一定匹配你的芯片優(yōu)化等級和宏定義。對庫文件內(nèi)部已經(jīng)編好了你定義的ARM_MATH_LOOPUNROLL對它沒有影響。這種情況恰恰是最坑的你以為開了優(yōu)化實(shí)際跑的還是通用版本。源碼方式就沒這個(gè)問題你想開哪個(gè)宏直接在編譯配置里加上就行。4.3 中斷上下文與實(shí)時(shí)性工業(yè)固件里CMSIS-DSP 的濾波和變換函數(shù)經(jīng)常被放在定時(shí)器中斷或 ADC 轉(zhuǎn)換完成中斷里執(zhí)行。要注意這些庫函數(shù)大多不是可重入的non-reentrant原因是它們依賴實(shí)例結(jié)構(gòu)體中的狀態(tài)緩沖區(qū)。如果兩個(gè)中斷或者中斷與主循環(huán)共享同一個(gè) FIR 實(shí)例結(jié)構(gòu)體同時(shí)調(diào)用arm_fir_f32狀態(tài)緩沖區(qū)會被交錯(cuò)修改輸出完全錯(cuò)亂。解決辦法其實(shí)很簡單給每個(gè)中斷上下文分配獨(dú)立的實(shí)例結(jié)構(gòu)體和狀態(tài)緩沖區(qū)或者在調(diào)用庫函數(shù)前關(guān)中斷調(diào)用完再開。前者的代價(jià)是 RAM 增加后者的代價(jià)是中斷響應(yīng)延遲變長。工業(yè)上對可靠性要求高我一般寧可多花幾 KB RAM也不建議用臨界區(qū)去包住整個(gè)運(yùn)算——因?yàn)?FFT 運(yùn)算時(shí)間可能是幾百微秒過長的關(guān)中斷時(shí)間在實(shí)時(shí)系統(tǒng)里是會出大事的。4.4 固定點(diǎn)與浮點(diǎn)混合場景很多現(xiàn)代 MCU如 STM32H7、i.MX RT都是雙核或者帶雙精度 FPU浮點(diǎn)運(yùn)算已經(jīng)非??臁5I(yè)傳感、控制類固件里我依然建議對消耗較大的循環(huán)體做定點(diǎn)化處理不是因?yàn)楦↑c(diǎn)不夠快而是因?yàn)楦↑c(diǎn)功耗更高、且在不同編譯器優(yōu)化等級下存在細(xì)微的舍入差異。CMSIS-DSP 的很多模塊同時(shí)提供_f32單精度浮點(diǎn)和_q31/_q15定點(diǎn)版本可以混用。實(shí)際項(xiàng)目里常用的模式是ADC 采集到的原始數(shù)據(jù)轉(zhuǎn)成定點(diǎn)格式做濾波濾波結(jié)果再轉(zhuǎn)成浮點(diǎn)做控制律計(jì)算。中間的類型轉(zhuǎn)換用arm_q15_to_float這類支持函數(shù)它們內(nèi)部經(jīng)過了精度校準(zhǔn)比你自己寫強(qiáng)制類型轉(zhuǎn)換更穩(wěn)。5. 常見問題與排查技巧實(shí)錄5.1 HardFault 的三大元兇我把幾個(gè)真實(shí)項(xiàng)目里遇到的 CMSIS-DSP 相關(guān) HardFault 問題整理成了速查表問題現(xiàn)象可能原因排查方向調(diào)用 FFT 后進(jìn)入 HardFault輸入輸出緩沖區(qū)未按 8 字節(jié)對齊檢查緩沖區(qū)定義是否有__ALIGNED(8)定點(diǎn)濾波結(jié)果周期性跳變狀態(tài)緩沖區(qū)長度不足核對numTaps blockSize - 1公式只有開 FPU 后才 HardFault鏈接腳本未保留 FPU 寄存器上下文檢查是否啟用硬件 FPU 和對應(yīng)的編譯選項(xiàng)Simulink 生成代碼調(diào)用庫函數(shù)異常宏定義不匹配內(nèi)核核對ARM_MATH_CM7等宏對齊問題是最常被忽略的。ARM Compiler 在針對局部變量時(shí)默認(rèn)只按 4 字節(jié)對齊而 CMSIS-DSP 的 FFT 處理內(nèi)部需要 8 字節(jié)甚至 16 字節(jié)對齊。你在用arm_cfft_f32之前官方文檔有一句“輸入輸出緩沖區(qū)必須 8 字節(jié)對齊”很多人沒當(dāng)回事。一旦你傳到函數(shù)的指針不是 8 的倍數(shù)到了內(nèi)層 SIMD 加載指令VLDR那里就直接異常。解決方案是在定義全局?jǐn)?shù)組時(shí)加__ALIGNED(8)屬性或者使用arm_status的返回值里的錯(cuò)誤提示——庫其實(shí)有對齊檢查但僅限校驗(yàn)?zāi)J侥J(rèn)是不開的。5.2 長延時(shí)阻塞任務(wù)導(dǎo)致的“實(shí)時(shí)性虛標(biāo)”很多工程師在評估 CMSIS-DSP 性能時(shí)會跑一個(gè)類似“循環(huán)調(diào)用 1000 次 FFT測總耗時(shí)再求平均”的 benchmark然后得出“單個(gè) FFT 只要 120us”的結(jié)論。但這個(gè)數(shù)字在工業(yè)固件里往往沒有意義——因?yàn)槟愫雎缘袅讼到y(tǒng)里其他中斷、DMA 傳輸、RTOS 任務(wù)調(diào)度的干擾。更靠譜的評估方式是在實(shí)際的中斷處理函數(shù)里用 DWT 計(jì)數(shù)器Cortex-M 的調(diào)試觀測單元記錄調(diào)用arm_cfft_f32前后的時(shí)鐘周期數(shù)連續(xù)測量幾百次取最大值和 P99。我在一個(gè)振動監(jiān)測項(xiàng)目里就是這么干的結(jié)果發(fā)現(xiàn)中斷里實(shí)際耗時(shí)比裸跑 benchmark 高了將近 40%原因是內(nèi)存總線上有 DMA 在搬運(yùn) ADC 數(shù)據(jù)和 CPU 搶帶寬。5.3 庫版本升級帶來的行為差異CMSIS-DSP 從 1.x 升級到 5.x2020 年之后改成了獨(dú)立版本號API 基本兼容但極少數(shù)函數(shù)的數(shù)值精度有微改。比如arm_sin_f32、arm_cos_f32這些查找表插值實(shí)現(xiàn)的三角函數(shù)不同版本對查找表的密度和插值算法做了調(diào)整輸出的最后幾位可能存在差異。對工業(yè)項(xiàng)目來說這個(gè)“微改”在大多數(shù)場景下沒關(guān)系但如果你的固件里有閉環(huán)控制邏輯控制律里的三角函數(shù)換成新版庫之后系統(tǒng)的相位裕度可能會變化幾個(gè)百分點(diǎn)。所以我的建議是在正式量產(chǎn)前把 CMSIS-DSP 庫的版本固定下來并且用相同的編譯器版本編譯避免因?yàn)楣ぞ哝溕墝?dǎo)致二進(jìn)制行為漂移。實(shí)測下來ARM Compiler 5 升級到 6 之后如果不開類似-ffp.modefast的選項(xiàng)FPU 運(yùn)算順序都會不一樣這種細(xì)微變化在反復(fù)迭代的控制系統(tǒng)里是可能被放大的。5.4 用“半精度”還是“雙精度”一個(gè)經(jīng)常被誤解的話題CMSIS-DSP 最新版本開始提供f16半精度支持主要是為了在帶 fp16 指令加速的 M55/M85 這類新內(nèi)核上壓低功耗、提升吞吐。但半精度浮點(diǎn)的有效位數(shù)只有大約 10~11 位如果你要對振動信號做 80dB 動態(tài)范圍的分析半精度會明顯不夠用。我自己的經(jīng)驗(yàn)是在 M4/M7 上老老實(shí)實(shí)用 f32在 M33 甚至 M55 上如果溫度、振動這類慢信號處理可以嘗試 f16 但必須做誤差驗(yàn)證。怎么驗(yàn)證把同一段實(shí)測數(shù)據(jù)分別用 f32 和 f16 跑一遍完整流程比較輸出波形的 SNR 和控制指令的差異。如果差異在你系統(tǒng)可接受的閾限以內(nèi)才可以用 f16 省功耗。否則千萬別為了“高級”去踩這個(gè)坑。6. 實(shí)測數(shù)據(jù)與平臺選型參考為了給大家一個(gè)直觀參考我把幾個(gè)主流平臺上 CMSIS-DSP 的典型性能數(shù)據(jù)列一下我在 2024 年實(shí)際測過的配置平臺主頻FFT 點(diǎn)數(shù)數(shù)據(jù)類型耗時(shí)說明STM32F103 72MHz72256q15約 2.5ms無 FPU純定點(diǎn)STM32F407 168MHz1681024f32約 520us有 FPUSTM32H743 480MHz4804096f32約 1.1ms有雙精度 FPU但這里用單精度i.MX RT1062 600MHz6001024f32約 160usTCM 中運(yùn)行這個(gè)表格只適合做量級參考因?yàn)榫唧w耗時(shí)跟編譯器版本、優(yōu)化等級、數(shù)據(jù)在 RAM 還是 TCM、是否開了 Cache 都強(qiáng)相關(guān)。如果你要做選型對比建議在同一個(gè)工程里切換芯片用同樣的代碼編譯出來再對比這樣才公平。一個(gè)額外建議如果你的數(shù)據(jù)會被高頻訪問盡量放進(jìn)緊耦合內(nèi)存TCM或者 CCM RAM。CMSIS-DSP 對內(nèi)存訪問的優(yōu)化是依靠連續(xù)訪問模式的TCM 沒有 Cache 延遲性能提升非常直接。在 STM32H7 上我把 FFT 從普通 AXI SRAM 挪到 DTCM 后耗時(shí)減少了將近 30%而且代碼一行沒改僅僅是鏈接腳本里把數(shù)據(jù)段的位置換了。7. 我在工業(yè)項(xiàng)目里的三點(diǎn)核心體會踩過這么多坑之后我自己在固件落地上有了一套相對穩(wěn)定的做法分享出來供參考。第一CMSIS-DSP 不是拿來即用的黑盒也不是可以隨手魔改的普通 C 代碼。它對編譯選項(xiàng)、數(shù)據(jù)對齊、內(nèi)存布局有隱含要求。務(wù)必要在開工前通讀一遍arm_math.h里那些#if defined的宏控制邏輯確認(rèn)自己工程的編譯配置和庫的要求對齊。這一步偷懶后面一定會還。第二永遠(yuǎn)為“狀態(tài)保護(hù)”留后手。DSP 模塊經(jīng)常處理的是連續(xù)數(shù)據(jù)流狀態(tài)緩沖區(qū)一旦被破壞輸出就不可信。我會在調(diào)試版本里加校驗(yàn)和CRC來監(jiān)測關(guān)鍵狀態(tài)緩沖區(qū)是否被意外篡改量產(chǎn)時(shí)如果 ROM 足夠我還會把關(guān)鍵系數(shù)表放在只讀段并且用 MPU 做寫保護(hù)。這套做法在工業(yè)現(xiàn)場應(yīng)對靜電干擾、電源跌落等異常情況時(shí)非常有用。第三不要盲目追新。CMSIS-DSP 版本更新頻繁我見過有人為了用某個(gè)新函數(shù)把整套工具鏈都升級了一遍結(jié)果老工程的編譯時(shí)間變長、代碼體積變大還引入了幾個(gè)莫名的行為差異。工業(yè)固件的原則是穩(wěn)定優(yōu)先庫版本選一個(gè)經(jīng)過驗(yàn)證的 LTS 性質(zhì)的版本除非有重要的安全修復(fù)否則別輕易動。如果你正準(zhǔn)備在手頭的項(xiàng)目里引入 CMSIS-DSP我建議你先把官方源碼包下載下來打開arm_math.h從頭到尾看一遍把宏定義和數(shù)據(jù)結(jié)構(gòu)搞清楚再動手寫第一行調(diào)用代碼。這個(gè)投入絕對是值得的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
青青草手机在线免费观看| 人人摸人人添人人操 | 国产精品秘 福利姬在线观看| 超碰九7| 91亚洲精品青草| 国产美女自拍AV| 蜜臀在线网站| 中国小夫妻勾搭露脸淫荡对白 | 人人妻人人澡人人爽人人精品浪潮| www鬼畜国产男人的天堂| 国产精品制服丝袜清纯唯美| 久久性爱视频免费看| 在线中文AV| av情色影音| 亚洲成人av色网| 亚洲色图亚洲无码强奸乱伦| 天天艹天天日| 久久久久免费看少妇A片特黄| 97久操| 91高潮喷水美女| 啊啊好多水| 精品夜夜澡人妻无码| 影音先锋中文字幕日本好一区二区| 最新日本中文字幕| 欧美天天射| 国产97视频| 亚洲综合伊人无码久久| 色欲久久99精品久久| 日本顶级天天操狠狠操夜夜操中文字幕| 亚州精品丝袜-不卡成人免费| 久久一二三四五六七八九区区区 | 成人情色一区二区| 五月天综合网| 日本久久久久久久久| 曰韩精品九九无码| 成人黄页| 久艹99| 国产后入清纯| 少妇色欲综合网2| 国产99999久久精品| 极品粉嫩少妇视频| 久久机热| 久草加勒比一区在线| 欧美亚洲激情| 国产又猛又粗又爽又黄| 亚洲图片色图欧美另类| 國產尤物AV尤物在線觀看| 久久高清欧美国产| 六月婷婷综合| 久久久不卡区一区二区三区久久久| 欧美日韩人人精品| 天美传媒AV国产在线| 久久久婷| 精品玖九九久| 国产精品美女久久久久久网站| 精品亚洲一区在线观看| 中文字幕在线日亚州9| 成人在线日韩| 日韩二三区| 老司机午夜福利视频一区二区| 久久综合久色欧美综合狠狠| 国产91 丝袜在线播放| 国产99精品一区二区三区免费| 国产高清MV操逼视频| 久久鲁干| 欧美国产一区二区三区麻豆传媒| 国产精品另类一区大香蕉| AV女资源| 亚洲精品毛片在线观看| 人人人人人人少妇| 精品九九九九九九九九九| 加勒比海人人操超碰在线| 囯产精品久久久久久久久久梁医生| 国产日产精品久久快鸭的功能介绍| 欧美啪啪女女| 青草伊人久久| 亚洲国产91精品一区二区久久| 九九色图| 亚洲伊人青青草| 亚洲人成在线放东京热| 五月天综合网| 女同性恋中文字幕| 成人av影院在线观看| 99激情视频| av亚洲天堂资源网站| 呻吟 欧美 日本 中出| 久久在线观看免费视频| 玖玖婷婷五月天| 亚洲码和欧洲精品激情系列| 色综合加勒比| 操一区| 天天射夜夜| 99久久无码| 97资源超碰| 国产一区二区在线看| 黄色片A级一区二区三区| 开心五月天激情网| 91在线观看,天天综合| 亚洲毛片一级带毛片基地| 四虎影库国产精品免费| 97超碰欧美精品| 日本一级性爱| 呻吟 欧美 日本 中出| 九月激情婷婷| 久草草一二三四区久久| 日韩簧片免费看| 日韩乱码Av| 九九九不卡| 中文字幕精品资源在线| 天美传媒麻豆一区二区三区国产精| 亚洲精品啪视频| 97频视在线| 久久性爱视频免费看| 男人的天堂啪啪| 蜜臀Av一区二区三区| 国产一区二区av综合| 亚洲少妇在线影音| 一区二区三区机械有限公司| 在线播放成人高清免费视频| 亚洲和欧美裸体美女双飞视频| 日本一区二区亚洲综合| 熟女欧美日韩综合婷婷| 丁香六月激情| 蜜臀网址在线| 久久久99久9| 97香蕉网| 六月丁操逼| 免费av高清无码| 成人无码专区精品视频| 手机在线中文字幕国产| nuu12国产麻豆精品| 操逼逼无码| 麻豆区久久久久亚| 天天射影院| 欧美综合亚洲综合| 另类亚洲图色| 丁香五月天啪啪| 亚洲国产成人精品女人久久久| 很很干很很操| 亚洲日韩美女中文字幕乱| 91碰碰| 熟女乱伦二区| 欧美A片中文字幕| 久久久专区| 1769一区二区| 超碰97 线线 在现| 97色欧州| 亚洲精品一区二区三区在线播放| 欧美姓爱综合网| 欧州色图区| 日韩免费高清大片在线| 国产91丝袜在线播放蜜月| 日本3级一区二区免费| 色九九久九九| 伊人操操| 色五月综合| 日韩性爱一级片| 精品国产久久乱码| 插老姨肥穴| 伊人久久大香大香线蕉中文 | 天天日天天爽| 一级特黄aaa大片在线观看成人一级片在线观看 | 欧美色性爱| 女生看匆91网站| 91欧美成人色站| 九九色婷婷| 国产白丝精品在线观看| 亚洲成人AB| 91丝袜美女| 手机在线看片免费人成视频| TS人妖另类精品视频系列| 91欧美综合在线| 国产伦精品一区二区三区视频女| 日韩卡一卡二卡三在线| 一级人妻性爱视频| 酒色综合网| 91久久国外网| 伊人成人情色综合| 欧美日韩性感| 国产农村妇女一区二区| 精品性爱无码在线播放| 中国国国产一级特黄毛片| 91欧美亚洲| 天天综合~91| 91/欧美| Av色五月| 麻豆国产尤物AV| 老司机射| 把腿张开老子CAO烂你| aa片毛片| 日韩无码三级影院| 综合影院永久入口国产| 亚洲无码偷拍| 久久狠狠色噜噜狠狠狠狠97| 日韩欧美加勒比| 人人妻人人色一区二区三区| 91老熟女老女人国产老太| 亚洲AV乱码专区国产噜噜亚洲| 99热思思| 大香蕉婷婷| 亚洲av强奸乱伦| 手机在线人成免费视频| 国产精品久久99日日| 久久这里只精品免费福利| 丝袜AV一区二区三区| 精品对白久久不卡| 不卡视频一区蜜桃视频 | 成人在线视频网| 丝袜剧情| 人妻日日干| 亚洲精品一区二区三区在线播放| 精品午夜福利| 日本免费中文一区二区三区四区| 天天久久| 日本一二三高清| 久久99国产综合精品女同| 亚洲有薄码区日本系列中文字幕| 日本九九九九| 五月丁香啪啪啪| 综合五月天| 东京日日夜夜| 欧美日韩淫加| 手机久操欧美综合色码| 欧美淫乱视频| 嗯嗯啊啊啊好爽| 欧美综合第一页| 国产中出内射一区二区| 99re免费视频精品全部| 色狠狠 - 百度| 日本操逼视频导航| 久久9亚洲| 日韩熟女精品无码专区一区二区 | 亚洲国产亚洲天堂| 外国免费性情大片| 99re热有精品视频国产| 极品极品色影院| 婷婷香蕉欧美在线一区二区三区 | 国产乱伦亚洲| 久久久激情| 日本一区二区三区精品| 操淫穴亚洲五月丁香| 欧美图片色五月天| 亚洲日韩在线a不卡99精品 | 亚洲人综合19| 天天操天天干一区二区 | 78久久久| 啊啊啊男女| 免费国产电影一区二区| 国产懂色精品国产av| 欧美综合站| 久草精品一区| 爱妃国产亚洲视频中文字幕| 强奸xx国产| 在线女人91| 日韩97视频| 欧美亚洲激情| 熟女六十路| 东北女人的毛片| 97ai亚洲| 国产av美女被艹的乱叫| 96AV久久久| 99在线精品观看视频中文| 精品无码一区二区三区| 日本三级久| 中文在线视频| 久久亚洲欧美中文字幕国语| 日本999精品| 欧州91高潮| 国产中文字幕曰本毛片| 1二区9| 老熟女91视频| 丁香五月色| 男人天堂免费| 家庭乱伦性爱av| 日韩一区二区熟女| 亚欧美综合网| 中文字幕亚洲在线一区 | 国产精品美女在线一区| 黄色不卡视频| 狠狠色伊人亚洲综合网站色| 亚洲精品丝袜| 少妇被c 黄 免费观看| 蜜乳AV色欲AVAV无码| 情色五月天网| 天天干夜夜一操| 亚洲熟女乱熟乱熟妇综合网二区| 激情五月天插| 91激情网| 2019天天干天天操| 大乔未久88一区| 久久riav中文精品| 欧美成人综合| 日本视频在线观看污污污| 欧天美中出| 一本大道不卡一二三区| 欧美色图97| 思思热er精品视频| 97中文热色| 日本免费亚洲欧美| 96久久久久久久| 爱爱动态120秒| 精品九九九九九九| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 操逼无码一区| 欧美日韩不卡传媒| 色97| 久久精品国产亚洲AV高清演员表| 欧美乱伦专区| 国产精品在线一区二区| 爆操无码| 天天澡天天爽日日AV| 综合日韩激情另类图片| 婷婷五月天激情网| 亚洲色阁| 国产偷仑| 一区三区啪啪| 亚洲阿v天堂在线| 久偷拍| 岛国黄色大片网站| 天天天干977| 天天看片天天爽| 欧美亚洲第一页| 色婷婷一区二区三区久久午夜成人不| 九九碰九九爱97超碰| 粉嫩av在线| 久久精品国产久精国产| 五月天婷婷激情| 国产色综合亚洲色综合吹潮| 欧美色图自拍| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 国产一级137片内射麻豆| 蜜桃狠狠色伊人亚洲综合| 另类天堂| 超碰在线观看av不卡| 久草毛片| 日韩视频小说在线观看| 丁香五月激情网| 国产精品亚洲天堂网址| juliaann欧美丝袜办公室| 操逼精品视频| 99在线免费视频| 天天艹天天日| 呦呦一区| 亚洲有码视频二区| 91精品少妇搡搡搡| 美女的肌被草喷水视频| 无码免费一区二区三区啪啪| 在线强奷到舒服的无码视频 | 日日天天久久啊啊aaa| 亚州操逼网| 91看黄片| 国产色图乱伦| 深夜国产福利| 久久超碰天天| 男人的天堂日韩| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 岛国色情视频在线观看| 最新av中文字幕高清| 亚洲欧美不卡线| 久超碰这里只有精品| 91久久伊人婷婷青青草| 95精品在线| 亚洲午夜AV| 亚洲国产精品无码AV在线| 青娱乐休闲视频在线观看| 久久女女| 97中文字幕一区| 色综合99999| 欧美激情 一区| 亚洲综合夜色| 嗯,啊。舔我逼| 97 九色| 午夜精品久久久久| 大香蕉中文aV在线| 99热精品国产| 欧美影音在线| 久久啊啊啊视频| 久久久久久久久久久久黄色| 亚洲情色1区| 九九久久久久久爱| 色狠人在线99| 亚洲欧美日韩电影网站一区| 欧美乱妇狂野欧美在线视频| 色娱乐色呦呦夜夜夜夜av| 丁香五月天久久精品视频一区二区三区| www鬼畜国产男人的天堂| 色婷婷丁香五月| 99热久| 激情小说五月天| 精品视频久久久久九九九九9999| 色五月婷婷五月天| 亚洲成人一二三区| 操逼999| 嗯嗯啊啊好大好爽| 96精品久久久| 97综合在线| 国产高清亚洲日韩一区| 热久久国产| 思思热久久成人| 最新国产亚洲精品精品国产亚洲综合| 激情丁香五月婷婷| 青青草在线视频人人想人人上| 中文字幕 一区二区 亚洲无码| 99爱久久视频频| 大香蕉综合在线| 91美女视频电影| 夜夜嗨视频| 国产精品久久久久久高清无码免费看| 久久肏大逼| 亚洲人成网www| 蜜桃在线观看一区二区三区 | 国产一区二区av综合| 色啪网| 亚洲天堂另类小说男人| 俺也射| 国产白丝精品在线观看| 377p欧洲日本亚洲大胆| 青青草九九九九九| 欧美性五月| 欧亚日韩中文在线| 日韩亚洲中文字幕在线| 亚洲天堂综合AV| 蜜桃色院一区久久| 九九无码| 婷婷色综合| 欧美亚洲日韩16色| 一起草在线视频| 黄片色区软件| 大香蕉在线视频重口味毛片在线| 91精品人妻一品二品三品| 欧美日韩在线视频网站| 久久色情| 风骚少妇视频中文字幕| 亚洲一区日韩精品中文字幕| 人妻精品视频一区二区| 人人搡人人肉久久精品| 9丨久久九九九| 欧美色性爱| 久热69九色熟妇97| 蜜臀99久| 日韩欧美国产高清视频| 美国久久一二三四| 亚洲av综合伊人久久| 欧美 熟女 日韩| 国产精品激情久久久久久久| 17c在线成人免费A片观看| 亚洲色图日韩丝袜制服一区二区五月在线 | 水野优香在线观看| 久久久9视频| 欧美熟妇精品黑人巨大一二三区| 国产精品不卡高清在线观看| 女性91网站| 国产精品操| 日韩有码专区| 欧美最婬乱婬爆婬牲视频| 深夜激情| 亚洲狼狼干综合1| 日少妇视频| 九九热久久99精品re| 日韩一区二区精彩视频| 91老熟女91老女人| 国产午夜视频| 国模限制级电影| 中文字幕乱在线伦视频中文字幕乱码在线 | 欧美性爱日韩高清| ss久久| 久久伊人东京热| 久久亚洲AV无码专区国产精品 | 校园春色五月天| 自拍鲍鱼一区在线高清观看免费| 夜夜夜夜爽| 51一区二区三区| 久久夜精品一区二区三区| 欧美一级美片在线观看免费| 蜜桃久久久久久久| 26uuu成人影片| 啊啊啊好湿久久| 国产免费黄色一级大片| 中文字幕视频2区| 91综合在线| 91在线免费观看处女| 日本视频在线中文字幕| 嫩草 人人网精品| 岛国片国产成人亚洲播放| 国产久久日| 久久99久久99久久99人受| 中国和日本人色哪个不下载能放| 91色图片| 老司机天天操| 国产人人干| 久久婷婷六月综合| 新亚洲无码| 欧美亚洲日韩16色| 国产成人bd在线观看| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 国产精品视频内谢女人| 久久中出在线| 久久这里只精品99re66图| 嗯嗯啊啊啊好爽| 天天摸天天插天天日| 色婷婷六月丁香七月婷婷| 嗯嗯啊啊好大好爽| 激情第四色| 精品人妻一区二区三区四区石在线| 久久、1234| 免费啪啪啪网站18岁| 老熟女综合| 日韩钢筋无码高清啾啾啾| 成人性爱全视频观看| 淫淫综合网| 污污污8888| 久99| 草草影院最新网址| 9丨久久九九九| 99国产精品久久久在线播放| 9999久久久久| 人人操人人插人人摸人人干| 777超碰| 中文字幕文字幕无码一区二区三区电影99 | 在线观看十八禁| www.99中文字幕| 91综合网站| 蜜臀aV午夜一区二区三区| 天天操女人| 日韩中文字幕在线视频观看| 9国产超碰| 婷婷国产精品一区二区| 国产一区二区精品在线视频| 欧美爆操91| 操91| 天堂种子在线www网资源| 国产精品久久久久久高清无码免费看| 大逼色网站| 欧美天堂亚洲电影院一区在线播放| 男人天堂久久精品| 影音先锋国产精品| 日本一区二区三区四区免费观看| 日韩成人私密一级精品av| 亚洲 欧美 第一页 | 久久国产精品一区二区| 91国产丝袜美女| 日日夜夜青青草母狗| Julia在线播放亚洲久久| 国产小u女在线观看| 国产成人欧美一区二区三区的国产| 中国一级αV| 极品色综合| 国产国产亚洲一二三久久| 欧洲小说色图视频另类| 久久草视频污视频| 日日干男人的天堂| 久久伊人青青草| 久久一二三级一一一| 美女诱惑1区2区| 国产免费一区二区三区最新不卡| 五月天婷婷综合网| 东京热男人的天堂网| 亚洲综合激情五月久久| 激情婷婷五月天| 99综合| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 国产后入精品| 欧美成人精品一区二区三区| 97高清啪啪| 亚州乱码中文字幕综合久久久| 久九干| 丰满少妇人妻久久久久久| 丰满人妻一区二区三区四| www.狠狠干.coom| 尻女朋友一夜| 久久神马影院| 超碰在97| 加勒比色99999| 欧美熟妇精品黑人巨大91| 免费视频一二三区| 欧美成年人性爱视频免费观看| 日韩精品在线视频,日韩精品……| 七月婷婷综合| 亚洲最新av无码成人精品区| 激情五月天丁香社区| 天天日天天插| 国产亚卅97| 亚洲精品国产熟女久久久| 亚州,欧美在线| 欧美翘臀视频网站一区二区三区| 亚洲熟妇一,二,三期| 国产精品成人无码a v毛片| 日本操大逼| 99re视频在线观看这里只有精品| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 成年无码动漫av片无尽在线| 国产精品永久免费10000| av在线免费一区二区| 久久xxxx| 中出789在线视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产亚洲精品精AV.| 老司机射| 青青草在线视频人人想人人上| 好看的久久不射无码影视影院| 精品少妇高潮久久| 香蕉黄色一级视频| 色999亚洲人成色| 日本97久久久精品| 97久久超碰日韩精品| 久久精品国产亚洲5555| 亚洲操逼视频网站| 亚洲av热热色| 96麻豆精品一区二区三区| 日韩性爱1级片视频| 五月天社区| 中文字幕文字幕无码一区二区三区电影99| 伦理第一页| 视频国产精品未满十八禁止在线观看| 偷拍视频青青草在线视频| 大粗鳼巴久久久久| 国产免费一区2区3区| 中文字幕日韩电影人妻| 91爱综合| AV中文字幕剧情1区2区3| 午夜精品人妻二区三区| 老司机午夜精品视频| 91亚洲黑人| 精品熟女呻吟久久91| 伊人AAA| 免费国产| 婷婷久久综合| 成年人网站在线免费观看| 97超碰逼| 91精品黄在线观看| 男人的天堂视频精品乱在线| 久久色情| 亚洲中文字幕精品一区| 黑人无码一区二区| 亚洲在线观看| 69人妻人人揉人人躁人人精品| 欧美不卡五十路| 亚洲色丰满少妇高潮| 91粉嫩萝控精品福利网站_精品影音先锋国| 亚洲美腿丝袜香蕉影视欧美成人| 久久欧美1卡2卡3| 亚洲h片在线免费观看| 97在线日韩中文字幕| 男人天堂.AB| 福利在线黄片| 日本免费专区| 无码人妻一区二区三区色欲aⅴ| 天天影视射综合网| 亚洲少妇喷视频看| 乳欲人妻办公室奶水| 91少妇| 抽插一区二区视频| 日本伦理一区二区| 久久xxxx| 强奸乱亚洲| 约操熟妇| 日韩少妇一区二区三区| 8050无码八戒| 精品久久久高清无码| 免费观看一区| 亚洲欧美伦综合| 骚货操死你| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 久久免费9| 99999这里都精品| 女生自91网站| 国产久久一区二区| 综合av影片| 热热热热日日漂亮永久永久国产日| 99久久com免费视频′| 99在线精品视频| 五月天激情婷婷| 超碰亚洲97| 久久综合精品一区二区三区| 加勒比性爱成人在线| 亚洲五月丁香花狠狠干一区二区三区| 啊啊啊啊操死我了| 91丨九色丨国产打屁股| 四虎影院成年人片| 激情综合五月| 7月婷婷综合| 亚码激情| 97久久超碰日韩精品| 欧美亚洲系列| 综合影院亚洲| 日韩日本欧美在线观看| 欧美夜夜狠| 无码精品久久久天天影视| 熟女高潮精品一区二区| 欧美色图电影| 久久东京伊人一本到鬼色| 秋霞免费AV| 欧美色九九九| 狠狠爱夜夜| 永久免费发布性爱网| 殴洲老熟女| 亚洲欧美在线观看2021| 天天操狠狠日夜夜干超碰撸com视频在线观看| 超碰三级秋霞| 漂亮人妻被强中文字幕hd| 人人爱人人乐人人操| 亚洲无吗在线视频| 欧美日韩国产在线| 97久久天天综合色天天综合色电影| 欧美综合自拍| 熟女被操视频网址| 男人天堂 天天射| www熟女乱伦com| 性站| 一中国女人毛片水真多| 吻戏激情性巴克| 亚洲黄色电影| 五月天啪啪| 人妻少妇无码| 久久激情综合| 视频不卡中文字幕| 亚洲人成色9999精品久久| 东京热,男人的天堂| 26uuu国产| 国产隔壁老王影院在线| 色婷婷成人综合| 欧美gv在线观看| 久久超碰大香蕉| 国产福利小视频高清在线观看| 国产精品久久9| 免费视频在线一区二区不卡| 中文字幕在线观看AV| 免费a v| 亚洲成人精品久久久| 先锋影音av先锋一区| 九九九九九九九九九九九九九九九女| 日人妻视频91| 国产精品久久久久久久久久久久| 97午夜剧场日韩| 丝袜美腿制服人妻二区中文字幕| 91亚洲网站| 欧美精品久久96人妻无码| 无码人妻精品酒店| 久久久99999久网站| 婷婷色导航| 国产高清无码一区三区二区| 日夜尻逼网| 国产农村妇女精品1区二区| 欧美性爱www免费版| 91亚洲网| 羞答答AV中文字| 天堂日本亚洲欧美| 五月天激情小说| 美女尤物人人操| 国产精品人妻无码久久久老鸭窝| 亚洲第一男人天堂| 国产一区二区三区久久精品太古里| 亚洲国产无码精品首页久久久| 国产精品懂色tv影视免费观看| 日韩色女精品| 亭亭在线资源| 久久大精品乱码视频人妻熟女| 91美女在线精品视频| 欧美三级一级| 色97| 亚洲免费日韩在线一区二区| 亚洲 欧美 91| 日本免费中文一区二区三区四区| 国产精品视频精品一二| 大香蕉av在线| 九九色逼| 欧美|91色综合| 67914亚洲精品| 嗯嗯嗯好爽| 日韩在线视频1234| 日韩精品区二区三区不卡| 婷婷五月综合在线| 中文字幕av乱伦| 五月天色色网站| 99这里只有精品| 国产欧美美女免费观看视频| 久久久99久9| 伊人久久大香线综合无码| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 欧美色图偷拍另类| 92大香蕉| 日韩欧洲操屄视频| 脫衣舞一区二区三区| 午夜丁香| 色综合超碰超| 亚洲成人性| 欧美综合娱乐久久| 婷婷情色综合网| 亚洲。天堂。日本在线观看| 国产高清亚洲日韩一区| 四虎影视永久在线免费| 曰韩精品九九无码| 亚洲欧美日韩电影网站一区| 亚洲精品电影| 国产操逼视频在线观看| 欧美色91| 懂色Av一区二区三区| 嫩草影院在线观看精品 | 天天干天天中出av| 免看60秒涩涩视频| 新久久AV| 最新9久久久9免费视频| a亚洲欧美色欲| 欧美成人黄网色网站| 日韩精品电影| 欧美中文字幕日韩在线| 91爱综合| 91亚洲综合在线| 激情综合五月丁香| 天天欧美| 婷婷综合网| 黄站在线免费观看| 五月丁香婷婷啪啪| 亚洲风情在线观看| 欧美日综合| 亚洲少妇视频| 精品久久一区二区三区四区五区| 伊人久大| 久久99精品视频| 亚州男人天堂| 久久久久久亚洲Av无码| 亚洲色图 91| 精品欧美А∨无码黑人大荫蒂| 色综合天天| 999999精品| 在线观看十八禁| 亚洲国产精品99久久久| 双插在线| 成人日本视频人妻在线| 久久久999国产精品| 久久久久久久久久8888| 竹菊一区二区三区AV线| 99热免费| 国产精品久久久久久久毛片1| 久久丝袜| 久操视频免费观看| 国产黄a三级三级三级av在线看| 国产99精品一区二区三区免费| 东北女人操比视频| 久久久一热在线播放| 久久直播国产| 日韩9区| 91黑丝操| 久久亚洲不卡一区二区三区| 久久久久国产一区二| 欧美一区二区三区不卡高清视频| 91超碰碰在线| 91高跟美女在线播放| 丰满人妻av一区二区三区| 啊啊啊啊好爽好舒服一区二区易域| 六月色婷婷| 婷婷九月色| 久久鲁干| 啪一啪免费视频| 亚洲欧洲综合| 啊操爽品善一区二区三区| 亚洲综合97中文网| 大香樵伊人网| 高清在线偷拍自拍视频| 在线精品福利免费播放| 淫荡熟女乱伦网| a片在线播放| jazzjazz国产精品麻豆| dy888午夜老子影视达达兔| 思思热在线视频在线| 日本一道在线播放高清| 国产内射爽爽大片| 日韩免费高清大片在线| 亚洲av综合伊人久久| 搡老熟女免费视频| 家庭乱伦国产| 日韩人妻 中文字幕| 国产区91柔拿会所技师| 美女被艹尤物视频| 色婷婷在线视频| 中文字幕在在线观看网站| 2019天天操天天爽天天拍| 中文字暮97| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 国产精品久久发布| 裸体美女久久久| 欧美激情视频一区二区| 亚洲精品久久久久毛片A片拉屎| 国产AAAAAABBBBB| 国产精品成人无码av无码免费| 精品国产肉丝袜在线拍国语| 精品视频日日夜夜| 蜜桃传媒视频第一区入口在线看| 男人的天堂va| 人人摸人人摸人人干| 中文有码第五页| 伊人伊人LD| 欧美色图综合网| 四虎影视永久在线免费| 志村玲子视频一区二区| 久久一本大香蕉 | 东北女人av| 夜夜嗨一区二区三区直播内容| 在线免费观看日韩一区| 天天干天天干天天干| 亚洲人91| 久干9操| 18岁禁 茉莉成人久久| 激情综合网亚洲| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 很狠操| 欧洲特黄毛片免费看欧洲毛片| 黄色免费网页无码| 日日夜夜草草草| 日韩黄片影院| 亚洲综合射| 午夜色婷婷| 中文字幕欧美精品亚洲日韩蜜臀| 中文字幕日韩电影人妻| 免费a v| 情色五月天久久久| 呦呦影院| 97国产色图| 亚洲囯产精品女人久久久| 操美女人妻| 国产精品制服丝袜清纯唯美 | 欧美综合天堂| 国产热RE99久久6国产精品首 | 亚洲春色激情小说| 人妻一区二区三区熟女| 欧美午夜精品久久久久久3D| 少妇激情一区二区三区视频| 日本高清久久| 久久超碰com| 美女高潮视频91| 欧美1区二区三区公司 | 91一区二匹| 大香蕉宅男伊人| 超97在线精品视频| 狠狠躁伊人中文字幕| 黄色高清久久无码依人| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 九九九午夜| 欧美日韩操逼嗦吊| 高清国产无码av| 蜜臀99久久精品| 蜜臀久久久| 色情婷婷| 日韩人妻免费精品| 国产综合色精品在线观看| 小骚逼被操的爽不爽| 91精品啪在线观看国产城中村| 超碰视97中文| 情色av电影| 久久五月丁香| 色小视频蜜乳| 啪啪资源网| 欧美性爱91| 思思热久久成人| 欧美黄色片在线播放| 伊人网免费视频| 超碰99在线| 人妻少妇精品无码专区二区密桃| 成人欧美日超碰| 欧美78| 神马久久69| 另类视频在线| 91l欧美在线| 91天美传媒在线| 色爱综合网欧美| 欧美色图亚州激情| 日韩ab网 | 中文字幕熟女人妻丝袜丝| 全国男人天堂网| 欧美九九九九九| 亚洲黑人在线| 亚洲国产尤物yw在线观看| 中国一区二区亚洲人妻| www.色婷婷| 七久久久| 久久欧洲| 天天射天天操天天干天天吃2018| 久久人人爽爽人人爽人人片αV| 伊人久久在线视频观看| 777琪琪午夜免费A片| 日本国产欧美高清在线| 双插性欧美一二三区| 粉嫩绯色AV一区二区在线| 一区二区三区四区色图| 夫妻四区五区六区| 国产久久久久影院老熟女| 精品国产乱码久久久久久久| 亚洲黑人在线| 一级黄色性爱A级片| 日本午夜久久电影| 亚洲A色| 国产精品97视频| 乱伦一二三区| 校园春色制服丝袜中文字亚洲| 色色激情五月天| 欧美性爱一区二区三区四区| 蜜臀99久| 精品国产一区二区三区香蕉欧美| 99亚洲精品| 一摸二插三插| 日韩免费在线视频观看| 国产精品一区二区三区在线密挑| 麻豆精品天美| 亚洲精品国产无码高清| 青青草九九九九九| 久久久久久九九九九九| 国产亚州日韩欧美看片| 亚码人妻| 伦伦成年午夜免费视频| 亚洲精品天天影视综合网| 97视频免费在线观看| 麻豆AV一区二区| 啪啪综合网| 熟妇亚洲一区二区三区| 日韩精品一区二区人人人| 超碰人人色| 最新AV在线| 亚州情色j区| 日本成熟少妇A∨网站| 无码人妻丰满熟妇奶水区毛片| 翔田千里Av在线| 久久超碰大香蕉| 国产一区二区av综合| 97欧美色综合| 97人人爱人人做人人乐| 蜜臀久久99精品久久久久久无删减 | 狠插 制服 自拍| 欧美传媒| 日本性一区| 美女自卫慰黄网站免费| 校园春色亚洲色图| 蜜桃色色网站视频三区| 免费中文综合精品| 很狠操| 久jiu久神马影院| 黄页网站免费高清在线观看| 欧洲一区二区| 亚洲日韩青青草色月| 国产91久久九九免费精品无码| 国产97色在线| 91爱看| 天天摸天天插天天日| 国产情侣自拍在线播放| 大肥女高潮bbwbbwhd视频| 熟女高潮合集-永久久久-成人AV | 国产精品毛片| 偷拍 精品 另类 四区| 日韩黄色成人性爱| 高清国产精品无码| 极品另类| 亚洲人妻色图| 四虎在线免费视频| 很很很很操| 高清不卡一二三区视频......| 中文字幕性感少妇av| 国产一级不卡在线观看| 日韩一级性爱无码| 热思思免费视频| 亚洲无码 国产无码| 新亚洲无码| 日本在线观看网址| 九九综合九九综合| 日韩性爱一级片| 91久久久久久久久18| 婷婷色香| 熟妇艹鸡八| yazhousetuoumei| 97综合在线观看| 岛国AV一区二区电影| 人人喜人人妻| 少妇国产不卡| 丝袜喷水在线| 九九国产热| 97在线播放 | 黄片在线免费在线观看| 97色碰| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 国产亚洲深夜激情| 久热在线精品免费观看| 婷婷AV一区二区三区| 色爽爽文学| 狠综合网| sewuyueav| 国产日韩欧美中文在线播放| 日本Xx性爱| 人妻天天操天天爽视频免费| 超碰538| 久久久9999| 午夜男人一级A片7777| 超碰在线人妻不卡| 国产精品夜夜夜| 久热精品在线国产| 97在线精品| 日本亚欧爱爱| 亚洲天堂久久久久久粉红视频| 家庭乱伦性爱av| 裸体女人草逼视频播放一区,二区,三区,四区,五区| 91夜色chaopeng| 97网站在线观看 | 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 美女尤物人人操| 人人摸人人干| 九九综合九九综合| 色婷婷久久| 国产999精品久久久| 午夜高清成人在线视频| 天美av在线观看| 中文字幕精品三级久久久| 日本成人A片网站| 91色五月俺来也| 狠狠操狠狠操操| 亚州精品一区二区三区香中文字幕在线| 久久草视频污视频| 美女午夜福利免费视频| 大香蕉99热| se01国产在线视频| 亚洲一本色码中文字幕| 一级二级三级黑人无码| 色婷婷综合久久中文字幕雪峰| 国产精品懂色tv影视免费观看 | 婷婷久久综合久| 神马久久久久久久久| 好湿好紧好爽 视频| 欧成人精品一区二区三区| 天天干一区二区| 日韩欧美性爱电影在线观看| 一区二区偷拍拍视频| 亚洲色图欧美| 大鸡巴久久久| 密乳AV免费观看| 亚洲女人毛茸茸91| 99无码| A片大香蕉在线| 加勒比伊人影院| 亚洲无码免费看| 黄页av| 9长久久精品| 国产不卡片| 国产毛片久久久久久久| 特污精品女优骚货黄色视频在线免费观看| 久久婷婷伊人| 大黄片做爱的大的| 色汉综合| 久久黄黄黄| 97视频在线免费播放| 超碰97欧美在线| 睡产熟女乱伦| 亚洲日本激情| 亚洲不卡三级手机播放| 日韩二区三四区五区六区在线看| 炮色五月| 99热成人| 丁香五月综合| 欧美综合区| 新婚人妻扶着粗大强行坐下| 国产美女销魂在线观看不卡| 日韩精品人妻| 97欧美在线| 日韩中文字墓| 精品国产三级av韩国在线|