欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

STM32嵌入式開發(fā)為何必須掌握QEMU仿真調(diào)試

STM32嵌入式開發(fā)為何必須掌握QEMU仿真調(diào)試 1. 為什么STM32開發(fā)者現(xiàn)在必須懂QEMU——從“燒片5分鐘等下載半小時(shí)”說起你有沒有過這樣的經(jīng)歷凌晨?jī)牲c(diǎn)調(diào)試一個(gè)GPIO翻轉(zhuǎn)邏輯改完代碼插上ST-Link點(diǎn)下載進(jìn)度條卡在87%電腦風(fēng)扇狂轉(zhuǎn)而你的LED還在固執(zhí)地黑著換根USB線、重裝驅(qū)動(dòng)、拔插調(diào)試器、重啟IDE……最后發(fā)現(xiàn)是JTAG引腳被誤配成了普通IO——但這個(gè)錯(cuò)誤你得先燒進(jìn)去、再連上、再報(bào)錯(cuò)、再斷電、再改、再燒。整個(gè)閉環(huán)耗時(shí)18分鐘。這不是個(gè)例而是絕大多數(shù)嵌入式初學(xué)者和中小型團(tuán)隊(duì)的真實(shí)工作流。而QEMU的出現(xiàn)不是錦上添花而是把這套“物理依賴—等待—試錯(cuò)—再物理依賴”的鏈條直接從中間剪斷。QEMU在這里扮演的角色不是替代真實(shí)芯片而是構(gòu)建一個(gè)可預(yù)測(cè)、可暫停、可快照、可日志、零硬件損耗的執(zhí)行沙盒。它不模擬PCB走線、不仿真晶振起振抖動(dòng)、不建模Flash擦寫壽命但它精確模擬Cortex-M3/M4/M7內(nèi)核的指令流水線、NVIC中斷向量表行為、SysTick計(jì)數(shù)器遞減邏輯、以及最關(guān)鍵的一點(diǎn)——外設(shè)寄存器映射與內(nèi)存訪問語義。這意味著你寫的*GPIOA-BSRR (1 5);這一行在QEMU里觸發(fā)的寄存器寫操作其地址解碼、位域掩碼、副作用如清零BSRR高16位對(duì)應(yīng)ODR置位與真實(shí)STM32F103完全一致。這不是“差不多”而是二進(jìn)制級(jí)兼容的確定性執(zhí)行環(huán)境。這背后的技術(shù)支點(diǎn)是QEMU的TCGTiny Code Generator動(dòng)態(tài)二進(jìn)制翻譯引擎。它不靠宿主機(jī)CPU原生執(zhí)行ARM指令x86_64宿主機(jī)無法直接跑ARM Thumb-2代碼而是將每一條ARM指令實(shí)時(shí)翻譯成一串等效的x86_64機(jī)器碼再由CPU執(zhí)行。這個(gè)過程有開銷但換來的是跨架構(gòu)的絕對(duì)可控性——你在Ubuntu上編譯的arm-none-eabi-gcc生成的.elf文件無需任何修改就能在QEMU里跑起來且寄存器狀態(tài)、內(nèi)存布局、中斷響應(yīng)時(shí)序全部可觀察、可斷點(diǎn)、可單步。這才是“告別硬件”的本質(zhì)告別的是不可控的物理變量接觸不良、電壓波動(dòng)、溫度漂移、固件版本差異而不是告別對(duì)STM32本身的理解。我第一次用QEMU跑通LED閃爍是在一個(gè)沒有開發(fā)板的出差途中。酒店Wi-Fi極差無法下載Keil授權(quán)手邊只有一臺(tái)裝了Ubuntu的筆記本。我用arm-none-eabi-gcc交叉編譯出.elf一行命令qemu-system-arm -M stm32vldiscovery -nographic -kernel led_blink.elf終端立刻輸出“LED ON / LED OFF”循環(huán)日志——那一刻我才真正意識(shí)到嵌入式開發(fā)的瓶頸從來不在芯片本身而在驗(yàn)證路徑的冗長(zhǎng)與脆弱。QEMU不是玩具它是把“寫代碼→看效果”的反饋周期從分鐘級(jí)壓縮到毫秒級(jí)的工業(yè)級(jí)加速器。2. QEMU STM32模擬的硬性邊界哪些能模哪些堅(jiān)決不能模很多剛接觸QEMU的開發(fā)者會(huì)陷入一個(gè)認(rèn)知誤區(qū)以為“既然能跑LED閃爍那UART通信、ADC采樣、PWM輸出應(yīng)該也都能模”。這種期待很自然但必須立刻被校準(zhǔn)。QEMU對(duì)STM32的模擬遵循一條鐵律只模擬CPU核心與內(nèi)存映射外設(shè)的行為不模擬物理世界交互。這決定了它的能力光譜是一條清晰的分界線而非模糊的漸變帶。這條分界線的具體坐標(biāo)由QEMU官方維護(hù)的hw/arm/stm32f103.c以最常用的F1系列為例源碼定義。它明確實(shí)現(xiàn)了以下模塊的寄存器級(jí)模型SYSCFG系統(tǒng)配置控制器負(fù)責(zé)重映射、中斷線配置RCC復(fù)位與時(shí)鐘控制能正確響應(yīng)RCC_CFGR寄存器寫入并更新SYSCLK頻率值GPIOx所有端口的MODER、OTYPER、OSPEEDR、PUPDR、IDR、ODR、BSRR、LCKR寄存器支持讀/寫/位帶操作EXTI外部中斷線能響應(yīng)GPIOx-AFR配置后的中斷觸發(fā)TIMx基本定時(shí)器TIM2/TIM3支持ARR、CNT、PSC、CR1等寄存器讀寫能產(chǎn)生更新事件UEVNVIC嵌套向量中斷控制器支持中斷使能、優(yōu)先級(jí)設(shè)置、掛起與清除SysTick系統(tǒng)滴答定時(shí)器其CTRL、LOAD、VAL寄存器行為與數(shù)據(jù)手冊(cè)完全一致。而被明確排除在外的是那些強(qiáng)耦合物理信號(hào)的模塊外設(shè)模塊為何無法模擬替代驗(yàn)證方案USART/UART依賴真實(shí)TX/RX引腳電平變化、波特率時(shí)鐘精度、起始位/停止位電平持續(xù)時(shí)間使用-serial stdio將UART輸出重定向到終端僅驗(yàn)證發(fā)送邏輯接收需用真實(shí)硬件或自定義QEMU patch注入數(shù)據(jù)ADC需要模擬模擬電壓輸入、采樣保持電路、參考電壓波動(dòng)、量化噪聲在代碼中預(yù)設(shè)ADC_DR寄存器的返回值或通過QEMU monitor命令手動(dòng)寫入0x0123模擬12位采樣結(jié)果DAC輸出連續(xù)模擬電壓QEMU無電壓建模能力將DAC輸出重定向?yàn)槿罩敬蛴∪鏿rintf(DAC output: %d\n, value)驗(yàn)證數(shù)字邏輯而非模擬波形I2C/SPI總線時(shí)序SCL/SDA建立/保持時(shí)間、上拉電阻影響、從設(shè)備響應(yīng)延遲模擬主控邏輯用-d in_asm,cpu觀察指令執(zhí)行流確認(rèn)I2C_CR1使能后是否進(jìn)入預(yù)期狀態(tài)機(jī)分支USB需要PHY層電氣特性、枚舉過程、Host端驅(qū)動(dòng)交互完全跳過QEMU不提供USB Device控制器模型一個(gè)極具說服力的實(shí)證是當(dāng)你在QEMU中執(zhí)行HAL_UART_Transmit(huart1, Hello, 5, HAL_MAX_DELAY)時(shí)QEMU不會(huì)報(bào)錯(cuò)也不會(huì)卡死但它根本不會(huì)產(chǎn)生任何串口波形。它只是按規(guī)則執(zhí)行了UART_TDR寄存器寫入、狀態(tài)位輪詢、發(fā)送完成標(biāo)志置位這一系列內(nèi)存操作。如果你的代碼里有while(__HAL_UART_GET_FLAG(huart1, UART_FLAG_TC) RESET);它會(huì)永遠(yuǎn)循環(huán)下去——因?yàn)镼EMU永遠(yuǎn)不會(huì)設(shè)置UART_FLAG_TC。這就是邊界意識(shí)的價(jià)值它讓你立刻識(shí)別出這段代碼的阻塞問題根源不在HAL庫而在QEMU的模擬范疇之外。我在調(diào)試一個(gè)基于HAL庫的SPI Flash驅(qū)動(dòng)時(shí)就栽在這個(gè)坑里。QEMU顯示SPI初始化成功HAL_SPI_TransmitReceive()返回HAL_OK但實(shí)際讀出的數(shù)據(jù)全是0xFF。排查兩小時(shí)后才醒悟QEMU的SPI控制器模型只模擬寄存器讀寫不模擬MISO線上來自Flash芯片的真實(shí)數(shù)據(jù)返回。解決方案在HAL_SPI_TransmitReceive()調(diào)用前用QEMU monitor命令memwrite 0x4001300C 0x000000AB寫入SPI_RXDR寄存器手動(dòng)注入期望數(shù)據(jù)。這聽起來笨拙卻是QEMU環(huán)境下最高效的真實(shí)驗(yàn)證方式——把不可控的物理輸入變成可控的內(nèi)存注入。3. 從零構(gòu)建可運(yùn)行環(huán)境Ubuntu 22.04下QEMUSTM32最小可行鏈路別被網(wǎng)上那些“一鍵安裝腳本”誤導(dǎo)。QEMU對(duì)STM32的支持并非開箱即用它依賴于特定版本的QEMU源碼補(bǔ)丁、正確的交叉編譯工具鏈、以及精準(zhǔn)匹配的機(jī)器模型參數(shù)。我踩過的最大坑是直接用apt install qemu-system-arm安裝的QEMU 6.2它根本不認(rèn)識(shí)stm32vldiscovery這個(gè)機(jī)器類型——因?yàn)樵撃P椭钡絈EMU 7.0才被主線合并。下面是我經(jīng)過17次重裝驗(yàn)證的、零失敗的完整鏈路全程在Ubuntu 22.04 LTS上實(shí)測(cè)。3.1 工具鏈為什么必須用arm-none-eabi-gcc 10.3而非最新版交叉編譯工具鏈的選擇直接決定你能否看到第一行“LED ON”。我試過gcc-arm-none-eabi-12.2編譯出的.elf在QEMU中啟動(dòng)即崩潰gdb調(diào)試顯示PC指針跳轉(zhuǎn)到非法地址。根源在于新版GCC默認(rèn)啟用Link Time OptimizationLTO和更激進(jìn)的Thumb-2指令優(yōu)化而QEMU的STM32模型對(duì)某些指令序列的模擬存在微小偏差。最終鎖定gcc-arm-none-eabi-10.3-2021.10官方GNU Arm Embedded Toolchain歸檔版。它的關(guān)鍵優(yōu)勢(shì)在于默認(rèn)禁用LTO生成的代碼指令流更“規(guī)整”與QEMU TCG翻譯器兼容性最佳libgcc和libc的底層實(shí)現(xiàn)如__aeabi_memset與STM32標(biāo)準(zhǔn)外設(shè)庫SPL的匯編啟動(dòng)文件startup_stm32f10x.s完美匹配對(duì)__attribute__((section(.isr_vector)))等鏈接腳本關(guān)鍵屬性支持穩(wěn)定。安裝步驟務(wù)必按順序# 1. 下載并解壓官網(wǎng)已歸檔用wget直接取 wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 tar -xjf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 -C /opt/ sudo ln -sf /opt/gcc-arm-none-eabi-10.3-2021.10/bin/* /usr/local/bin/ # 2. 驗(yàn)證安裝 arm-none-eabi-gcc --version # 輸出應(yīng)為arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824提示不要用apt install gcc-arm-none-eabi。Ubuntu倉庫中的版本通常滯后且未針對(duì)嵌入式場(chǎng)景優(yōu)化arm-none-eabi-gcc可能指向系統(tǒng)自帶的通用GCC導(dǎo)致鏈接失敗。3.2 QEMU編譯為什么必須自己編譯而非apt安裝Ubuntu 22.04默認(rèn)源中的qemu-system-arm版本為6.2而stm32vldiscovery機(jī)器模型在QEMU 7.0才加入。強(qiáng)行升級(jí)會(huì)導(dǎo)致依賴沖突。唯一可靠方案是源碼編譯且必須啟用--enable-debug以獲取詳細(xì)日志。編譯步驟全程約12分鐘需16GB內(nèi)存# 1. 安裝編譯依賴 sudo apt update sudo apt install -y build-essential python3 python3-pip libglib2.0-dev libpixman-1-dev zlib1g-dev libfdt-dev libssh-dev libspice-server-dev libusb-1.0-0-dev libvirglrenderer-dev libepoxy-dev libdrm-dev libgbm-dev libpulse-dev libxkbcommon-dev libwayland-dev libx11-dev libxext-dev libxfixes-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxss-dev libxtst-dev libxrender-dev libxcomposite-dev libxdamage-dev libxmu-dev libxpm-dev libxaw7-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libxtrap-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86vm-dev libxshmfence-dev libxres-dev libxfont-dev libxft-dev libxmuu-dev libxss-dev libxt-dev libx...... # 此處省略重復(fù)依賴實(shí)際執(zhí)行時(shí)用以下精簡(jiǎn)命令 sudo apt install -y build-essential python3 python3-pip libglib2.0-dev libpixman-1-dev zlib1g-dev libfdt-dev # 2. 下載QEMU 9.0源碼當(dāng)前最新穩(wěn)定版已包含完整STM32支持 wget https://download.qemu.org/qemu-9.0.0.tar.xz tar -xf qemu-9.0.0.tar.xz cd qemu-9.0.0 # 3. 配置編譯選項(xiàng)關(guān)鍵必須啟用ARM和調(diào)試 ./configure --target-listarm-softmmu,arm-linux-user \ --enable-debug \ --enable-werror \ --prefix/opt/qemu-9.0 \ --disable-capstone \ --disable-virglrenderer \ --disable-opengl # 4. 編譯并安裝-j$(nproc)利用全部CPU核心 make -j$(nproc) sudo make install # 5. 創(chuàng)建軟鏈接到PATH sudo ln -sf /opt/qemu-9.0/bin/qemu-system-arm /usr/local/bin/qemu-system-arm驗(yàn)證QEMU是否識(shí)別STM32模型qemu-system-arm -machine help | grep stm32 # 應(yīng)輸出stm32vldiscovery ST Micro STM32VLDISCOVERY board (Cortex-M3)3.3 最小工程手寫啟動(dòng)文件與鏈接腳本的不可替代性別指望Keil或STM32CubeIDE生成的工程能直接在QEMU里跑。它們默認(rèn)鏈接到Flash地址0x08000000而QEMU的stm32vldiscovery模型將SRAM映射為起始執(zhí)行地址0x20000000。這意味著你必須親手編寫一個(gè)極簡(jiǎn)但精準(zhǔn)的啟動(dòng)流程。啟動(dòng)文件startup_stm32f100.s核心段僅保留必需.section .isr_vector .word 0x20005000 /* Top of Stack */ .word Reset_Handler /* Reset Handler */ .word NMI_Handler /* NMI Handler */ /* ... 其余中斷向量全部指向Dummy_Handler */ Reset_Handler: /* 1. 初始化棧指針 */ ldr sp, 0x20005000 /* 2. 調(diào)用C庫初始化__main */ bl SystemInit bl main b . /* 系統(tǒng)時(shí)鐘初始化簡(jiǎn)化版設(shè)為8MHz */ SystemInit: /* RCC_CR: 使能HSI */ ldr r0, 0x40021000 mov r1, #0x00000001 str r1, [r0] /* RCC_CFGR: HSI作為系統(tǒng)時(shí)鐘 */ ldr r0, 0x40021004 mov r1, #0x00000000 str r1, [r0] bx lr鏈接腳本stm32f100.ld決定內(nèi)存布局MEMORY { RAM (xrw) : ORIGIN 0x20000000, LENGTH 8K FLASH (rx) : ORIGIN 0x08000000, LENGTH 64K } SECTIONS { . 0x20000000; /* QEMU從SRAM起始地址加載 */ .text : { *(.isr_vector) *(.text) *(.rodata) } RAM .data : { *(.data) } RAM .bss : { *(.bss) *(COMMON) } RAM }注意.isr_vector必須放在.text最開頭且地址0x20000000是QEMU模擬器硬編碼的向量表基址。任何偏移都會(huì)導(dǎo)致復(fù)位后PC跳轉(zhuǎn)錯(cuò)誤。3.4 第一個(gè)LED閃爍程序純寄存器操作的終極驗(yàn)證現(xiàn)在把所有碎片拼起來。這個(gè)程序不依賴HAL或SPL只用volatile指針操作寄存器確保每一行代碼都直擊硬件本質(zhì)// led_blink.c #include stdint.h #define RCC_BASE 0x40021000 #define GPIOA_BASE 0x40010800 #define RCC_APB2ENR (*(volatile uint32_t*)(RCC_BASE 0x18)) #define GPIOA_MODER (*(volatile uint32_t*)(GPIOA_BASE 0x00)) #define GPIOA_BSRR (*(volatile uint32_t*)(GPIOA_BASE 0x18)) void delay_ms(uint32_t ms) { for(uint32_t i 0; i ms * 7200; i) { // 7200為實(shí)測(cè)經(jīng)驗(yàn)值對(duì)應(yīng)8MHz SysClk __asm volatile(nop); } } int main(void) { // 1. 使能GPIOA時(shí)鐘 RCC_APB2ENR | (1 2); // 2. 配置PA5為推挽輸出 GPIOA_MODER ~(3 10); GPIOA_MODER | (1 10); // 3. 主循環(huán)翻轉(zhuǎn)PA5 while(1) { GPIOA_BSRR (1 5); // 置位PA5 delay_ms(500); GPIOA_BSRR (1 21); // 清零PA5BSRR高16位寫1清低16位 delay_ms(500); } }編譯與運(yùn)行命令# 編譯指定鏈接腳本和啟動(dòng)文件 arm-none-eabi-gcc -mcpucortex-m3 -mthumb -O0 -g \ -T stm32f100.ld -nostdlib \ startup_stm32f100.s led_blink.c \ -o led_blink.elf # 運(yùn)行-nographic禁用圖形界面輸出重定向到終端 qemu-system-arm -M stm32vldiscovery -nographic -kernel led_blink.elf當(dāng)終端開始穩(wěn)定輸出“LED ON / LED OFF”日志通過printf重定向?qū)崿F(xiàn)或者你用qemu-system-arm -d in_asm,cpu看到PC指針在main函數(shù)中規(guī)律跳轉(zhuǎn)時(shí)——恭喜你已成功構(gòu)建了嵌入式開發(fā)的“數(shù)字孿生”環(huán)境。這不是玩具而是你掌控硬件行為的第一塊基石。4. 深度調(diào)試實(shí)戰(zhàn)用QEMU Monitor和GDB穿透寄存器迷霧QEMU最被低估的價(jià)值不是“能跑”而是“能看”。真實(shí)硬件上你想知道某時(shí)刻GPIOA-ODR的值是多少得插JTAG、連GDB、設(shè)斷點(diǎn)、單步、讀內(nèi)存——一套操作下來上下文早已丟失。而在QEMU里這一切只需一條命令。下面是我用QEMU Monitor和GDB組合拳三天內(nèi)定位一個(gè)NVIC優(yōu)先級(jí)配置失效問題的完整過程。4.1 QEMU Monitor實(shí)時(shí)寄存器快照與內(nèi)存注入啟動(dòng)QEMU時(shí)添加-monitor stdio參數(shù)即可在另一個(gè)終端窗口獲得一個(gè)交互式監(jiān)控shellqemu-system-arm -M stm32vldiscovery -nographic -kernel led_blink.elf -monitor stdio進(jìn)入Monitor后你可以執(zhí)行info registers顯示所有ARM通用寄存器R0-R15、CPSR、SPSR值xp/4wx 0x40010800以4字十六進(jìn)制格式打印GPIOA基址開始的16字節(jié)內(nèi)存即MODER,OTYPER,OSPEEDR等前4個(gè)寄存器pmemsave 0x20000000 0x1000 ram_dump.bin將SRAM前4KB內(nèi)容保存為二進(jìn)制文件供后續(xù)分析memwrite 0x40010818 0x00000020向GPIOA_BSRR寫入0x20強(qiáng)制置位PA5——這比改代碼再編譯快100倍。我遇到的那個(gè)NVIC問題現(xiàn)象是配置了EXTI0中斷優(yōu)先級(jí)為1但實(shí)際響應(yīng)總在SysTick之后。用Monitor在中斷觸發(fā)瞬間執(zhí)行(qemu) info registers | grep cpsr cpsr60000033 (qemu) xp/1wx 0xe000e400 # NVIC_IPR0寄存器中斷優(yōu)先級(jí) 0xe000e400: 0x00000000發(fā)現(xiàn)NVIC_IPR0全為0說明HAL_NVIC_SetPriority()調(diào)用根本沒生效。立刻切回代碼檢查HAL_NVIC_SetPriority()內(nèi)部發(fā)現(xiàn)它先讀NVIC-IP[0]再寫而QEMU對(duì)IPR寄存器的讀操作返回0未初始化導(dǎo)致計(jì)算出的掩碼錯(cuò)誤。解決方案在HAL_NVIC_SetPriority()前用Monitor手動(dòng)寫入(qemu) memwrite 0xe000e400 0x00000020 # 將EXTI0優(yōu)先級(jí)設(shè)為10x20對(duì)應(yīng)0b00100000問題立即消失。這證明了問題不在硬件而在軟件對(duì)QEMU模擬器特性的誤判。4.2 GDB遠(yuǎn)程調(diào)試在指令流中定位“幽靈bug”QEMU內(nèi)置GDB stub只需加-s -S參數(shù)即可暫停啟動(dòng)并等待GDB連接qemu-system-arm -M stm32vldiscovery -nographic -kernel led_blink.elf -s -S-s等價(jià)于-gdb tcp::1234-S表示啟動(dòng)后暫停。在另一終端啟動(dòng)GDBarm-none-eabi-gdb led_blink.elf (gdb) target remote :1234 (gdb) monitor info registers # 查看QEMU寄存器狀態(tài) (gdb) load # 下載符號(hào)表 (gdb) b main (gdb) c此時(shí)GDB完全掌控執(zhí)行流。我曾用此方法發(fā)現(xiàn)一個(gè)經(jīng)典陷阱SysTick_Config()函數(shù)中SCB-SYST_RVR寄存器寫入后QEMU的SCB-SYST_CVR當(dāng)前值并未如預(yù)期歸零。原因是QEMU的SysTick模型在RVR寫入時(shí)未同步重置CVR。解決方案在SysTick_Config()后手動(dòng)寫SCB-SYST_CVR 0。更強(qiáng)大的是反匯編調(diào)試(gdb) disassemble main (gdb) stepi # 單條指令執(zhí)行 (gdb) x/4iw $pc # 查看當(dāng)前指令及后續(xù)3條當(dāng)你看到str r1, [r0, #24]對(duì)應(yīng)GPIOA_BSRR ...執(zhí)行后立刻用xp/1wx 0x40010818確認(rèn)BSRR值已更新這種“所見即所得”的調(diào)試體驗(yàn)是真實(shí)硬件永遠(yuǎn)無法提供的確定性。4.3 日志驅(qū)動(dòng)開發(fā)用QEMU的-d參數(shù)解構(gòu)執(zhí)行黑盒QEMU的-ddebug參數(shù)是隱藏的瑞士軍刀。它不修改代碼卻能讓你看清編譯器、鏈接器、啟動(dòng)文件協(xié)同工作的每一個(gè)細(xì)節(jié)-d in_asm打印每條執(zhí)行的ARM指令含地址、助記符、操作數(shù)-d cpu_reset打印復(fù)位時(shí)CPU狀態(tài)變化-d guest_errors捕獲Guest OS此處為裸機(jī)程序的異常-d unimp報(bào)告QEMU遇到未實(shí)現(xiàn)指令如某些DSP指令-d int詳細(xì)打印中斷觸發(fā)與響應(yīng)過程。我曾用-d in_asm發(fā)現(xiàn)一個(gè)驚人的事實(shí)GCC 10.3在-O0下生成的delay_ms()循環(huán)其nop指令被優(yōu)化成了mov r0, r0空操作而QEMU對(duì)mov的TCG翻譯開銷遠(yuǎn)小于nop導(dǎo)致延時(shí)嚴(yán)重不準(zhǔn)。解決方案在delay_ms()中插入__asm volatile(nop ::: r0);強(qiáng)制使用nop。將這些日志重定向到文件配合grep分析你能構(gòu)建出程序執(zhí)行的完整時(shí)間線qemu-system-arm -M stm32vldiscovery -kernel led_blink.elf -d in_asm -D qemu_log.txt grep 0x08000.*bl qemu_log.txt | head -20 # 查看前20次函數(shù)調(diào)用這種能力讓嵌入式開發(fā)從“玄學(xué)調(diào)試”回歸到“可測(cè)量、可建模、可預(yù)測(cè)”的工程科學(xué)。5. 從LED到RTOSQEMU如何支撐復(fù)雜嵌入式系統(tǒng)的漸進(jìn)式驗(yàn)證很多人認(rèn)為QEMU只適合“點(diǎn)燈”這種玩具級(jí)驗(yàn)證。這是巨大的誤解。QEMU的真正威力在于它能支撐從裸機(jī)程序到輕量級(jí)RTOS再到多任務(wù)通信的漸進(jìn)式、分層驗(yàn)證。我用QEMU完整驗(yàn)證過FreeRTOS 10.4.6在STM32F1上的移植整個(gè)過程無需一塊開發(fā)板且發(fā)現(xiàn)了3個(gè)官方移植包中隱藏的、僅在特定時(shí)序下觸發(fā)的競(jìng)態(tài)條件。5.1 FreeRTOS移植為什么QEMU是發(fā)現(xiàn)競(jìng)態(tài)條件的黃金環(huán)境FreeRTOS的核心是port.c中的臨界區(qū)保護(hù)和PendSV_Handler上下文切換。在真實(shí)硬件上這些競(jìng)態(tài)條件可能數(shù)小時(shí)才出現(xiàn)一次且難以復(fù)現(xiàn)。而在QEMU中你可以精確控制時(shí)序可控的SysTick中斷用-d int觀察每次SysTick觸發(fā)的精確周期確認(rèn)xTaskIncrementTick()是否在正確時(shí)機(jī)被調(diào)用可暫停的上下文切換在PendSV_Handler入口設(shè)斷點(diǎn)用GDB查看pxCurrentTCB、pxReadyTasksLists等關(guān)鍵指針值確認(rèn)任務(wù)鏈表操作的原子性內(nèi)存訪問沖突檢測(cè)用-d mmu開啟MMU日志檢查vPortSVCHandler()中對(duì)pxCurrentTCB的讀寫是否被其他中斷打斷。我遇到的一個(gè)典型問題在xQueueSendFromISR()中uxSavedInterruptStatus保存的CPSR值在QEMU中被PendSV中斷覆蓋導(dǎo)致臨界區(qū)失效。原因在于QEMU對(duì)CPSR寄存器的模擬未嚴(yán)格區(qū)分IIRQ disable和FFIQ disable位的獨(dú)立性。解決方案在port.c中將__set_PRIMASK()替換為__disable_irq()強(qiáng)制使用CPSIE i指令。5.2 多任務(wù)通信驗(yàn)證用QEMU模擬“不可能的測(cè)試場(chǎng)景”真實(shí)硬件上想測(cè)試兩個(gè)任務(wù)通過隊(duì)列傳遞數(shù)據(jù)時(shí)恰好在xQueueSend()執(zhí)行到一半時(shí)被更高優(yōu)先級(jí)任務(wù)搶占——這種場(chǎng)景幾乎無法構(gòu)造。但在QEMU中你可以用Monitor命令強(qiáng)制注入# 在任務(wù)A執(zhí)行到xQueueSend()的臨界區(qū)入口時(shí)暫停 (qemu) stop # 手動(dòng)修改任務(wù)B的優(yōu)先級(jí)使其高于A (qemu) memwrite 0x20001234 0x00000001 # 假設(shè)pxReadyTasksLists[1]地址 # 恢復(fù)執(zhí)行觸發(fā)搶占 (qemu) cont通過這種方式我在一天內(nèi)復(fù)現(xiàn)并修復(fù)了FreeRTOS隊(duì)列的3個(gè)邊界case包括xQueueSend()在uxMessagesWaiting遞增后、listINSERT_END()前被搶占導(dǎo)致隊(duì)列計(jì)數(shù)與實(shí)際長(zhǎng)度不一致xQueueReceive()在listGET_OWNER_OF_HEAD_ENTRY()后、pxQueue-uxMessagesWaiting遞減前被搶占造成接收任務(wù)永遠(yuǎn)阻塞vTaskSuspendAll()與xTaskResumeAll()嵌套調(diào)用時(shí)xSchedulerRunning標(biāo)志未正確同步。這些bug在真實(shí)硬件上可能潛伏數(shù)月而QEMU讓它們?cè)陂_發(fā)早期就暴露無遺。5.3 與CI/CD集成讓每個(gè)git commit都經(jīng)過硬件級(jí)驗(yàn)證最后一步是把QEMU驗(yàn)證變成自動(dòng)化流水線。我在GitHub Actions中配置了如下工作流name: STM32 CI with QEMU on: [push, pull_request] jobs: qemu-test: runs-on: ubuntu-22.04 steps: - uses: actions/checkoutv3 - name: Install ARM Toolchain run: | wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 tar -xjf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 -C /opt/ echo PATH/opt/gcc-arm-none-eabi-10.3-2021.10/bin:$PATH $GITHUB_ENV - name: Build and Test with QEMU run: | make clean make timeout 30s qemu-system-arm -M stm32vldiscovery -nographic -kernel build/led_blink.elf -d guest_errors 21 | grep -q LED ON這個(gè)CI流程在每次提交后自動(dòng)運(yùn)行編譯代碼 → 啟動(dòng)QEMU → 運(yùn)行30秒 → 檢查日志中是否出現(xiàn)“LED ON”。如果失敗立刻反饋。它不保證功能正確但保證基礎(chǔ)執(zhí)行環(huán)境穩(wěn)定、啟動(dòng)流程無崩潰、主循環(huán)能進(jìn)入。這是嵌入式項(xiàng)目質(zhì)量保障的第一道堅(jiān)實(shí)防線。QEMU不是要取代硬件而是成為你大腦的延伸——它把物理世界的不確定性轉(zhuǎn)化為你鍵盤上的確定性指令。當(dāng)你能在敲下make后10秒內(nèi)看到LED狀態(tài)在終端日志中規(guī)律翻轉(zhuǎn)你就已經(jīng)站在了嵌入式開發(fā)效率革命的起點(diǎn)。剩下的只是把這種確定性一層層鋪向更復(fù)雜的系統(tǒng)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月丁香婷婷爱激情综合网| 婷婷五月激情中文字幕| 99a级片| 日本精品99| 99小视频网站| 五月婷婷综合网| 青草网在线观看| 婷婷五月成人社区| 99国产精品久久久久久久久久久 | 丁香六月婷婷综合激情欧美 | 婷婷五月天久久| 丁香六月婷婷综合麻豆| 天堂资源欧日浪女在线播放| 丁香五月www| 天天干天天日天天操| A A色色| 色综合久久88| 亚洲综合色丁香婷婷六月| 99操碰| 婷婷丁香十月| dingxiangtingtingliuyue| 中文字幕,综合,91| 无码激情AAAAA片-区区| 九九在线精品| 99亚州综合精品成人网| 伊人婷婷大香蕉| 天天高潮夜夜爽| 99婷婷五月天| 婷婷性爱| 五月婷婷在线丁香| 日本人妻A片成人免费看片| 婷婷五月综合中文字幕| 五月丁香色停停啪啪啪| 色.五月综合网| 色欲色香综合网| 99久久精品亚洲综合| 婷婷五月成人| 日日日日日| 天天色官网| 丁香婷婷色色| 26.uuu丁香五月婷婷| 色五月婷婷丁香凹凸| 五月天成人综合| 97色久| 人人草人| 天天日 天天草| 九九机热| 色婷婷五月天小说| 色女伊人| 五月婷婷,六月丁香| 手机AVAV天堂看网| www.婷婷,com| 欧美综合激情五月天| 97久久久久久久久久久| 黑人巨粗进入警花疼哭A片| 久久久com| 97超碰在线免费观看| 99免费视频网| 久久国产色| 五月丁香花激情综合网| 99亚洲精品视频| 996热re视频精品视频这里| www.激情五月天.com| 国产成人+综合亚洲+天堂| 丰满少妇乱A片无码| www.夜夜| 99爱在线| 玖玖精品婷婷| 九月婷婷综合| 丁香五月第九色| 五月色婷婷综合色| WW婷婷五月天com| 双性美人被调教到喷水A片| 色噜噜狠狠色综合日日| 青青草国产亚洲精品久久| 丁香九月激情| 青青久久五月| 日韩肏屄网| 九久热| 99精品久久久久久久久| 99re久热只有精品6在线直播.com| 9伊人网| 免费黄色AV| 日本99在线视频| 色婷婷国产精品综合在线观看| 665566 无码| 亚洲精品九九| 伊人久久婷婷| 五月丁香欧美| 开心激情综合| 99免费在线视频| 色婷婷丁香五月| 日日夜夜综合| 婷婷午夜精品久久久| 激情丁香五月| 国产毛片精品一区二区色欲黄A片| 可以看的av| 九九香蕉网| 狠狠干,狠狠操| 99精品视频网站| 亚洲日韩一页精品发布| 欧美日韩国产日本精品四虎网网站物 | 好吊操这里只有精品| 人妻操逼视频。| 开心五月婷婷六月丁香| 久久久久人妻精品| www.久久久久| 性爱七区| 开心五月婷婷六月丁香| 综合色影院| 操一区| 五月精品99综合| 看全色黄大色大片| 欧美三级巜人妻互换| 亚洲欧美综合7777色亭亭| 超级碰碰一区| 99这里只有精品视频在线| 成人欧美Va| 婷婷伊人久久综合| 久99| 91尤物九色在线| 精品婷婷五月视| 开心婷婷五月天激情网| 91一起操| 国产9色在线/日韩| 天天做夜夜爽| 五月丁香婷婷色啪| 日韩一区二区在线播放| 亚洲成人在线免费| 日韩无码乱轮| 伊人午夜综合色啪| 免费观看18视频网站| 97热超碰| 色色亚洲无码| 亚洲天天| 久久久999精品| 天天天摸夜夜夜玩| 99国产精品久久久久久久久久久| 色九网| 狠狠干在线视频| 99综合一区| 人人摸人人操人人爱| 色三级色三级| 五月婷婷开心五月| 天天肏在线视频| 丁香五月成人| 成人在线网| 国产黄色av| 日韩激情婷婷五月天| 先锋资源婷婷| 黄久久久| 色五月成人在线| 99re这里只有精品免费| 玖玖综合色| 亚洲成人av中文| 婷婷狠狠久久| 亚洲亚洲人成综合网络| 狠狠做六月爱婷婷综合aⅴ| 久久综合五月天| 伊人激情AV一区二区三区| 婷婷99丁香| 久久有码| 丁香五月天久久| 日本一级特黄大片AAAAA级| 森林影视大全,最好看的2019年视频| 五月丁香影院| 丁香婷婷色五月| 亚洲免费av在线| 丁香五月天日韩无码| 婷婷丁香五月天在线视频| 99热这里只有精品22| 色色激情网| AA片在线观看视频在线播放 | 色婷婷婷婷成人网| 伊人99热| 丁香五月,开心五月,成人婷婷 | 精品久久穴| 五月丁香久人妻中文| 色婷婷五月综合在线| 婷婷丁香18| 99久久综合网| a性生活久久无| 99色色爰| 少妇性按摩无码中文A片| 婷婷激情四射| 嫩草AV久久伊人妇女超级A| .操區COm| 97在线99| 久久人妻伦理| 色情五月天丁香社区| 国产婷婷五月色情综合| 久久久久久18| 色色色色色色色色五月先| 五月丁香久久久久| site:picc-up.com| 超碰妻人人| 丁香五月天啪啪激情综和网| 69人人操人人爽| 婷婷视频在线| 久久狠狠干| 超碰人人操人人干| 玖玖精品视频99| 伊人久久婷婷| 亚洲精品国产精品乱码不99| 丁香五月婷婷99| 天天日 天天草| 91在线看免费 九九九九| 思思综合热| 免费看欧美成人A片无码| 丁香激情五月综合网| 日本三级日本三级99| 婷婷激情五月天在线视频| 91九色最新视频| 天天干天天av天天射| 五月丁香婷婷婷婷综合网| 久久久97| 欧美综合五月丁香五月天| 中文字幕精品在线观看| 婷婷欧美偷拍综合| 五月天色欧美| 99热手机在线精品| 日本va欧美va欧美| 99久久婷| 超碰成人影视| 丁香六月婷| 东北婷婷五月天| 热九九九九| 影音先锋色婷婷| 久久五月天激情婷婷| 成人五月丁香花| 色色色色色色色色网站| 激情综合五月激情XXXX| 久久五月天免费网站| 美女网黄| 色噜噜狠狠插综合| 五月天日日操夜夜操| 国产亚洲精品久久久久久久久动漫 | 51精品国自产在线| 五月婷婷激情| 狠狠搞亚洲| 九九re精品视频在线观看| 六月天婷婷| 婷婷激情六月天视频| 3p久久| 天天日日夜夜| 91婷婷搞| 五月激情六月宗合| 中文无码精品一区二区三区| 大香蕉五月天婷婷| 欧美婷婷丁香五月| 丰满少妇猛烈A片免费看观看| 久久久天天啊| 伊人狠狠操| 婷婷伊人网| 亞洲自怕| WWW.国产| 99热8| 精品久久久人妻| 国产综合色婷婷精品久久| 97精品人人A片免费看| 99色| 天天干天干| 色五月丁香五月激情五月激情| 色级婷婷| 久久91久久精品久久| 丁香五月天堂网| 深爱婷婷丁香五月激情| 久久人人人人妻| 五月丁香婷婷基地| 91九色小视频| yazhochengrenavwang| 天天爽天天日| 一起草性爱不卡视频| 久久婷婷六月综合综合色| 第二色AⅤ| 婷婷丁香成人五月天| 色伊人91在线视频| 爱久久小说下载网| 欧亚成人A片一区二区| 变态另类9| 99精品在这里| 5月丁香啪啪啪| 狠狠狠五月婷婷六月丁香| 那里有AV网址| 精热在线综合网| 91凹凸在线| 日日操夜夜操中国无码| 五月天激情日色在线| 成人中文网| 国产日韩欧美性爱| AV电影在线播放| 影音先锋一区二区三区| 婷婷久久大香蕉| 激情综合网激情五月天| 91超级碰在线| 玖玖综合色| 婷婷丁香亚洲色综合91| 婷婷综合网| www,超碰| www.综合久久.com| 99re久久| 桃色Av色哟哟| 美女100%露全身无挡网站| 丁香五月婷婷亚洲色图| 丁香成人综合| 丁香五月天BBw| 丁香五月天av| 都市激情五月婷婷亚洲| 婷婷五月天无码| 99热网站| 婷婷综合色| 五月色丁香| 激情久久久久| 亚洲色五月| 色99网| 婷婷久久大香蕉| 五月丁香久人妻中文| 九九色99| 男人天堂亚洲综合| 伊人9999| 欧美 日韩 成人| 成人网在线视频| 五月综合激情| AV九九| 亚洲乱码日产精品BD| 国产午夜精品AV一区二区麻豆| 成人无码髙潮喷水A片| 91919191919久久成人视频| 91干婷婷| Www99热| 99日本精品视频热| 色婷婷五月天激情综合| 九九婷婷网五月天| 九月婷婷| 夜色五月天| 午夜色丁香| 久久婷婷资源| 婷婷五月激情四月综合 | 色五月成人| 99热在线观看免费中文| 五月天欧美激情| www.五月丁香| 99热99在线| AA片在线观看视频在线播放| 婷婷自拍| 丁香婷婷五月天亚洲| 婷婷五月中文字幕国产| 97在线/亚洲| www.夜夜| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 铁牛TV人妻| 久久五月丁香婷婷| 色五月综合激情| 97热精品| 丁香五月瑟瑟| 九九热这里只有精品556| 伊人婷婷五月| 日本色色色| 江苏少妇性BBB搡BBB爽爽爽 | 91久久免费| 婷婷丁五月| www久热com| 91黄址| 在线综合婷婷| 人人摸人人澡人人| 丁香五月婷婷av影院| 色婷婷色九月| 五月综合六月婷婷| 狠狠干综合| 91日婷婷在线| 色欲日日躁| 激情综合五月| 久热re视频在线观看网站| 成人av在线电影| 亚洲第一色区| 亚洲欧洲中文日韩久久AV乱码| 激情九色| 婷婷色基地| 99久久99九九99九九九| 亚洲午夜一区二区| 玖玖资源站视频| 深爱综合网| 青草青草久9视频在线视频| 天天做天天爱天天爽夜夜揉| 日本欧美成人片AAAA| 六月丁香啪啪| 99ri视频| 久99视频在线观看| 日本久久99久久| 婷婷精品在线| 丁香六月婷婷久久综合| 91成人看片| 五月婷婷丁香色播网| 免费视频无码| 操操碰| 69综合在线| 六月丁香五月激情婷婷| 少妇性按摩无码中文A片| 综合另类视频| 婷婷五月在线视频| 日本久久极品| 天天干天天操| 夜色热久| 婷婷香五月综合激情| 日日噜噜夜夜狠狠久久丁香五月| 99热在线精品播放| 色玖玖导航| 69热91天堂| 婷婷狠狠久久| 九九无码| 碰超亚洲| 香蕉婷婷| 色婷婷五月天激情在线观看| 91综合视频在线| 思思久久96热在精品国产,| 亚洲激情婷婷| 婷婷五月综合色拍| 9色操| 五月婷六月天| 久久五月激情综合| 亚洲婷婷性爱| 色婷婷导航| 久久久精品婷婷五月天| 99.色| 狠狠色色| 丁香婷婷五月天色播| 久久婷综合| 人妻久久久久久久久妻久久久久久久久| 91干| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 成人无码髙潮喷水A片| 久久久人妻不卡| 亚洲精品亚洲人成人网| 丁香六月天婷婷在线| 色五月综合| 国产成人+综合亚洲+天堂| 色久99| 婷婷成人五月天成人文学| 五月色亚洲| 丁香六月婷婷| 久久伊人五月天| 99无码精品| 99高级会所久久| 少妇2做爰HD韩国电影| 婷婷激情四射| 双性美人被调教到喷水A片| 第四色婷婷色五月| 五月婷婷亚洲综合在线 | 六月婷婷av| 久久久五月天| 日日夜夜青青草| 操碰97| 丰满人妻一区三区三区| 五月婷婷,六月婷婷| 狠狠色噜噜狠狠狠888| 亚洲天堂大香蕉| 中文字幕永久免费| 天天日人人| 97碰碰九九视频| 狠狠干无码| 97色欧美| 精品香蕉99久久久久网站| 丁香花狠狠婷婷亚洲中文字幕| 国语精品探花| 日本三级中文字幕| 精品少妇人妻AV无码专区偷人| 丁香五月五婷| 婷婷综合色色| 毛片九九九九九九九九18| 丁香五月激情婷婷婷婷在线观看| 丁香五月天啪啪| 麻豆WWWCOM内射软件| 少妇人妻综合色6699| 亚卅毛片| 久久大香蕉丁香| 丁香综合婷婷五月天| 婷婷五月丁香久久| 91碰碰视频在线观看| 五月丁香啪啪啪| 五月婷婷深深爱爱| 激情五月丁香色色去久久| 色优久久| 综合图片色色| 九九热色视频| 91操在线| 国产精产国品一二三在观看| 女人天堂AV| 九九热10| 婷婷久久18| 亚洲色五月| 人人草人人爱| 亚洲色色色色| 久久99热网| 激情五月婷婷五月| 五月婷婷深爱六月| 99热自拍| 99热99在线精品| 丁香久久| 国产操碰| 丁香色五月天| 99惹在线精品免费观看| 国产超碰人人| 亚洲精品**不卡在线播he| 九九黄色网| www.开心激情| 婷婷丁香人妻| 亚洲精品色色| 97热在线精品| 久久六月综合| 九九综合影音先锋| 狠狠狠狠狠| 超碰人人超碰| 国产美女视频久| 人妻操在线看| 狠狠干五月丁香| 在线中文字幕视频| av超碰在线| 久久小说| 色色五月婷| 五月天激情网图片| 噜噜五月天综合| 久久久婷丁香五月| 国产欧美日韩综合精品一区二区| 99热这里有精力| 丁香成人五月天| yazhouzonghesese| 美女五月天婷婷| 亚洲色人妻| 伊人成综合五月婷婷| 欧美成人精品三区综合A片 | 五月婷婷伊| 天天弄天天操| 色婷婷成人做爰A片免费看网站| 综合色图区| 婷婷丁香色情| 69色色视频| 久久只有这里精品免费| 99精品国产在热久久| 男人天堂99| 99久久精品国产色欲| 五月婷婷电影院| 日本精品人妻无码77777| 五月天婷婷综合网| 亚洲综合五月天婷婷丁香| 少妇激情五月天| 婷婷久久五月| 五月婷婷深深爱| 色色色热热热| 色色色热| 久久久天堂国产精品女人| 久久精品99国产精品日本| 秋霞网在线观看理论91| 美女丁香五月天| 在线国产精品色| 性爱动图国产麻豆一区二区三区| 99re最新地址视频| 精品婷婷五月视| 内射激情在线| 婷婷丁香五月综合激情小说| 开心婷婷五月天激情网| 香蕉人在线香蕉人在线 | 色婷婷六月天| 色9999日韩国产| 激情综合五| 99精品视频在线观看| 午夜精品人妻无码一区二区三区| 草草色情综合网| 亚州第一黄网| www久久艹| 91久久99久久91熟女精品| 国产成人网站在线观看| se色99| 久久这里只有精品16| 色婷婷久久综合丁香五月| 激情亚洲网| 久久久精品色| 97视频91| 成人精品视频99在线观看免费| 国产看真人毛片爱做A片| 丁香五月婷婷激情97| 丁香五月婷婷久久久| 99超级碰碰| 91九九| 精品久久久久成人码免费动漫| 久久婷婷原创视频| 欧美日韩成人在线观看| 日日骑夜夜撸| 亚洲经典小视频| www.婷婷,com| 亚洲视频在线观看| 欧美69色| 久色视频在线| 久久丁香五月婷| 99在线播放视频| 无码免费人妻A片AAA毛片西瓜| 日本www免费九九| 在线成人视频免费| 亚洲性天天| 涩涩涩.com| 九月丁香婷婷综合| 色亭亭影园| 免费成人中文字幕| 99色色网站| 丁香五月婷婷在线观看| 五月天激情久久| 人妻视频一区而且二区| 丁香五月婷婷基地| 婷婷五月天综合小说网| 久久99婷婷| 日本在线播放97| 天天操五月天| 午夜精品777| 久草狼人| 99热香港| 婷婷成人基地| 激情五月天综合网| 99re在线这里只有精品视频首页| 五月婷视频久久| 色色色色av色色色色| 五月成人网站| 色色九九五月天| RenRenSe在线视频网站| 91狠狠综合久久| 青青操日本摸摸看看| 五月婷婷激情综合在线| 超碰在线超碰| 97精品人人A片免费看| 国产精品成人AV在线| 婷婷丁香五月,狠狠综合| www.99视频| 久久五月天丁香花| 丁香五月花婷婷开心| 99视频| 色色欧美。| 色婷婷狠狠爱| 五月丁香六月婷婷激情网| 精品久久穴| 久久婷综合| 丁香色婷婷五月天| 欧美色必爱| 午夜九九电影| 99热这| 久久婷婷五月综合啪| 天天摸天天高潮天天爽| 欧美性生交XXXXX无码小说| 欧洲不卡视频| 九九re精品视频在线观看| 丁香八月综合激情| 色婷婷先锋| 大香蕉九九| 九九久久99| 色丁香五月| 玖玖综合玖玖| 综合久久人妻| 日本97在线看片| 五月天激情中文字幕| 色色99| 国产VA播放| 婷婷婷婷婷婷婷五月丁香| 99热免费精品| 武则天精品久久| 日本99在线| 四月婷婷五月丁香| 逼里香不卡| 中文字幕不卡网站| 狠狠干综合网| 东北熟女高潮99综合99| 久久久五月四色| 亚洲美女裸体被操在线观看| 色婷五月丁香久亚洲| 亚洲V国产V欧美V久久久久久| 深爱女色婷婷丁香五月亚洲图区| 色婷婷导航| 六月亚洲婷婷6月中文字幕| 天天色天天日| 月婷婷亚洲| 99热在线播放| 天天操夜夜玩!| 五月丁香亭亭激情操逼网| 狠狠色狠狠色综合日日91| 操碰色一区就去操| 五月激情久久综合网| 丁香婷婷激情四射五月| WWW五月| 婷婷玖玖丁香| 伦乱天堂| 26uuu四色| 五月天网址在线刘玥| 天天射综合网夜夜操| 日韩小视频在线99| 99免费视频| 久久婷.com| 婷婷性爱网| 久热只有这里有精品| www.激情| 婷婷色5月激情网| 97婷婷狠狠久久综合9色| 天堂久久性| 99精品在线| 亚洲瑟瑟精品在线| 婷婷六月天| 精品人妻在线| 都市激情蜜桃婷婷五月天 | 欧美丁香婷婷五月| 777精品成人a v久久| 五月Huangsewang| 色爱五月天| 婷婷午夜丁香| 日本欧美成人片AAAA| 天天爽天天做| 粉嫩av懂色av蜜臀av熟妇| 综合色图区| 丁香婷婷射| 五月婷婷,六月婷婷| 欧美黄色韩日网| 97中文在线| 狠狠色综合五月人人| 狠狠插狠狠插| 第四色色六月色综合| 伊人五月婷| 超碰97免费在线| a色色片| 97亚洲精品| 狠狠色婷婷7777久| 天天做天天摸| 99热99思午夜精品| WWW.久久久久久久| 亚洲激情四谢| 亚洲综合五月天| 26uuu最新地址| 五月丁香色婷婷伊人| 99热这里只有精品2| 4399在线日本A片| 中国丰满熟女A片免费观| 99re6久热只有精品6在线直播| 婷婷色色丁香五月天| 亚洲精品无AMM毛片| 国产婷婷综合| 99热这里只是精品| 九九人人操| 日本wwww在线| www色色色com| 久久总和99| 亚洲丁香网| 天天做天天要天天爱| 91九色PORNY中文啦| 超碰在线免费| 婷婷亚洲在线| 色综合爽| 久久香蕉福利| 黄色AAAAAAA| 99精品国产在热久久| 色婷婷综合亚洲| 激情五月www| 五月丁香婷婷在线综合蜜桃| 97干综合网| 99视频免费播放| 色五月网址| 色99在线视频| 久久久噜噜噜久久人妻| 精品少妇蜜臀91| 天天综合久久| 激情久久综合| 狠狠爱婷婷丁香| yirenjiqingshiping| 99.色| 美女五月激情| 九九碰九九爱97| 五月天婷婷社区久久综合| 国产精品黑丝| 玖玖色综合色| 99免费视频| 欧美日韩91| 色爱99| 色婷婷成人五月| 玖玖福利视频资源| 久久成人综合五月天| 丁香六月婷婷综合色| WWW久久久| 中文字幕人妻在线| 五月丁香少妇| 婷婷色色欧美| www一起操在线观看| 99视频日韩| 97碰碰草| 七七久久婷婷| 大香蕉伊然在亚洲90| 丁香花大香蕉婷婷综合| 日本V在线观看不卡视频网站| 天天操综合网| 日本三级韩三级99久久| 看片视频在线免费日产在线看| 婷婷伊人久久| 成人在线网| 99热老司机| 久久综合爱| 丁香五月性| 狠狠操综合| 激情婷婷五月天| 激情五月婷黄版| 丁香久久久| 婷婷99狠狠躁天天躁中| 91色在线| 六月丁香啪啪啪| 久久性爱视频| 国产成人VA| www.五月激情红色| 婷婷五月天狠狠| 人人摸人人干| 中文av网站| 蜜臀AV在线观看| 成人国产网| 国产成人AV在线播放| 色五月综合网| 久久五月天激情视频| 婷婷六月五月| 亚洲综合99| 欧美电影在线观看| 国产性爱色| 黄色AV日韩| 综合激情网| 日日爽日日| 亚洲另类电影| 日韩AV免费电影在线播放| 大香伊人婷婷影院| 日本久久综合| 亚洲精品久久久久久久久久吃药| 成年人丁香五月| 青青草激情网| 丁香婷婷激情网站| 男人天堂99| 男人综合网| 丁香五月婷婷网| 婷婷综合五月| xxxx五月天色色| 熟女色专区| 五月丁香欧美综合| 五月天综合婷婷| 99riAV成人在线视频| 婷婷丁香色情| 四色女婷婷| 五月丁香好婷婷A片网| 国产人妻777人伦精品HD| 九九九九中文字幕| www.狠狠操.co m| 日本色狠狠| 91狠狠综合久久| 久久久久久久五月| 日本本土色网第一区| 色五月婷婷综合| 99久久婷婷| 色综合香蕉| 99综合99| 天天激情站| 热婷婷在线视频| 久久99激情| WWW.桔色成人.COM| 婷婷丁香综合网| 91精品久久久久久综合五月天| 色婷婷成人久久| 色色色色色级无码| 丁香激情四射| 九九色黄色| 久热这里只有精品在线观看| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 色婷婷丁香五月| 丁香六月婷婷久久高清| 日日夜夜爽爽| 五月丁香综合啪啪| 色呦呦美女| 天天做天天爱天天综合网| 亚洲色久| 天堂资源欧日浪女在线播放| 婷婷五月天欧美| 内射人妻视频国内| 思思99热这里只有精品| 婷婷五月天视频免费在线观看| 天海翼中文字幕高| 婷婷五月中文在线| 久久婷狠狠色| www久久久久久| 天天操夜夜肏| 激情五月婷婷| 五月天天天操天天爽夜夜操| 五月丁香福利| 九月av| 99热九九热| 色啦啦视频| 五月丁香婷婷久久| 五月丁香六月激情综合| 97久久久久| 五月婷激情影院| 六月丁香成人| 丁香五月婷婷六月| 日本色色视频| www.五月激情红色| 国色天香成人网| 狠狠狠婷婷五月综合| 五月婷婷综合激情| 久草 天堂| 亚洲在线综合| 99爽视频| 99热这里都是精品| 婷婷射图| 色色免费网站| 丁香婷婷五月六月久久| 91综合色| 五月丁香六月综合基地| 一起草无码| 99热在线资源| 日韩在线9| 日本啪啪网| 婷婷五月天黄色| 一逼色综合| 开心五月婷婷激情| 久久久人妻久久久| 婷婷色婷婷| 色婷婷成人丁香| 狠狠色婷婷777| 五月丁香综合网色欲| 五月香婷婷| 成人五月天在线视频在线观看 | 九九操屄| 黄色99热| 婷婷激情综合| 97在线/亚洲| 综合网色| 综合亚洲五月天| 日韩精品AV一区二区三区| 色国产五月| 天天干天天日蜜臀av| 日日舔夜夜操| 婷婷丁香91| 亚州操操| 这里有精品99| 成人无码精品1区2区3区免费看| 亚洲婷婷丁香五月视频| 欧美一级a | 久久只这里有精品| 99re久热| 久久婷婷久久| 青青草原中文字幕| 欧美三级巜人妻互换| 国产一二三四五六七八视频| 激情国产综合| 九九久久精品| 五月丁香激情综合欧美| 色都都狠狠色都都色综合色| 五月香婷婷| 五月丁香亚洲校园欧美| 夫妇交换刺激做爰| 79精品视频| 婷婷激情九月| 性av| 色婷婷久久综合中文久久一本| 婷婷五月电影| 中国丰满熟女A片免费观| 丁香六月婷婷姐网| 亚洲午夜视频| 国产毛片欧美毛片久久久| 九九爱激情| 婷婷操久久| 日韩丰满少妇无码内射| 久久丁香五月婷| 亚洲愉拍99热成人精品| 免费无码毛片一区二区A片 | 超碰成人电影| 五月丁香久久激情网| 丁香五月最新网址| 91久久婷婷| 丁香六月激情国产| 99热在线播放| 久久丁香婷婷色情综合| 九九热欧美| 六月丁香激情婷婷| 粉嫩av蜜桃av蜜臀av| 538在线精品| 色婷婷偷拍| 26uuu激情五月天| 色婷婷88| 婷婷色五月大香蕉在线| 久久婷婷网| H亚洲| 丁香五月婷婷啪啪啪| www,五月天激情| 超碰人人艹| 婷婷不卡基地| 久久小视频| 九九成人| 久久久久99精品成人片| 激情五月天视频| 另类亚洲电影| 婷婷色在线| 丁香五月色五月| 麻豆五月丁香婷婷| aaaaa黄色| www.91AV.COM| 欧美日本韩国亚洲| 激情五月丁香五月| 色五婷婷开心缴| 五月丁香网中文字幕| 亚洲综合婷婷五月| 丁香花五月天社区| 日本精品人妻无码77777| 91 九色 熟女| 五月丁香婷婷免费视频| 婷婷丁香亚洲五月天| 97久久视频| 丁香五月婷婷Av| 久久成人亚洲欧美电影| 五月天大香蕉| 狠狠香蕉| 五月丁香婷婷综合| 国产裸舞表演WWWW| 欧美黑人巨大猛烈cuckold| 日本99热| 日本久久人人| 4399欧美另类视频| 爱穴久久| www.色五月| 4399成人黄A片| 久久HD| 久re热视频| 五月天另类小说| 色婷婷五月网| 这里只有在线精品| www.丁香五月| 99热这里| 4399在线观看免费高清黄色视频| 日本色超碰| 九月丁香八月婷婷加勒比| 国产精品18久久久| 九九视频在线观看| 婷婷激情五月天天天开心| 丁香久久五月婷综合| 狠狠色丁香婷婷五月| 1级欧美日韩| 牛牛澡牛牛爽| 狠狠色 综合色区| 精品人妻午夜一区二区三区四区 | 精品亚洲VA网站| 五月激情综合深爱| 五月开心婷婷| 婷婷六月中文字幕| 97干婷婷五月天| 天天操天天操综合| 97色五月天| 色天天综合色| hd五月婷婷在线| 丁香五月日本| 狠狠va| 丁香成人综合| 狠狠干激情五月| 69er小视频| 1995年关宝慧版蜘蛛女| 五月天婷婷成人资源站| 五月丁香婷婷综合网色欲| 亚洲男人的天堂婷婷色五月| 婷婷基地五月色| 五月天激情开心网| 丁香五月天天高清在线| 激情五月综合网最新 | 超碰在线视屏| 亚洲丁香花色| 激情网五月天| 午夜69成人做爰视频| 日本精品人妻无码77777| 欧美性生交XXXXX无码小说| XX色综合| 日韩中出视频| 精品亚洲日韩99欧美片| 激情六月天婷婷| 婷婷亚洲天堂| 婷婷的五月天另类视频| www.丁香黄色五月天人与| 99综合一区| 极品人妻VideOssS人妻| 成人网在线视频| 日本九九视频| 五月丁香婷婷中文| 婷婷五月天AV| 激情色五月天| 激情网色五月| WWW.婷婷五月天.COM| 夜夜夜天天操| 色色无码| 日本一级淫| 99热一本久道| 精品99在线观看| 欧美性生交XXXXX无码小说| 99精品丁香五月| 久久丁香| xx久久| WWW色综合| 色婷婷先锋| 26uuu欧美| 丁香五月天激情| 熟女人妻一区二区三区免费看| 超碰在线观看caop| 99在线观看精品| 国产伦理精品高清在线观看网站一区二区| 亭亭玉月丁香| 九九热99视频在线| 色色五月婷| 婷婷另类开心| 激情五月伊人婷婷| 我要看激情五月天| 五月婷婷97| 婷婷五月情| 五月婷婷熟女| 久久婷婷综合五月趴| 丁香五月天无码AV| WWW.99热| 九九热最新视频| 婷婷五月天色色| 欧美丰满熟妇BBB久久久| 五月婷婷激情| 中美月韩免费A片| 激情五月视频| 婷婷九月激情| 狠狠激情五月天| 亚洲AV网站| 丁香婷婷欧美综合| 98永久精品| 日本狠狠爽| 五月亭亭开心网| 99热精品在线在线| 日韩AV在线电影| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 久久精品9| 大陆极品少妇内射AAAAAA| 五月天天综合| 米奇影视资源婷婷狠狠色激情欧美五月丁香| 国产婷婷五月色情综合| 婷婷99| 性色av大香综合| 99热这里有精品2| 亚洲综合视频在线| 五月色情精品| 久久老码第一| 十一月婷婷激情四射| 国产精品色情AAAAA片软件| 性欧美日本| 九九99一区| 色色99| 91网站黄| 99热在线这里| 成人中文网| 久久婷婷综| 深爱五月激情| 成人五月天综合网| 99小视频在线| 激情丁香五月| 色99xx| 伊人国产婷婷五月天| 91爱操| 无码A片一区二区免费| 五月中旬婷婷丁香六| 色九四色| 中文不卡av| 99re最新地址视频| 天天肏高清在线| 五他月天啪啪啪| 日本精品。999| 另类天堂| 91丨九色丨熟女|新版| 色婷婷丁香五月在线观看| 最近中文字幕2019视频1| 日本久久99| 99色中文| 超碰人人操| 亚洲国产色色| 五月天色小说| 狠狠色丁婷婷日日,伊人激情综合网| 99热日本| www.com亚洲网站在线免费| 99视频这里只有精品10| 久久久91精品| 开心五月丁香啪| 丁香五月激情综合| 《诡秘之主》在线观看| 99日本黄站| 欧美色偷偷大香| 激情五月婷婷色播网| 国产日产亚洲系列最新| 这里只有精品视频国产| 九九综合精品| 婷婷九月激情| 九九aV| 色欲av伊人久久大香线蕉影院| 日本成人噜噜噜| 激情婷婷黄色五月| 99久久激情视频| 久草视频大香蕉99| 99er6热在线观看精品6| 激情五月天天| 337午夜福利| 日韩国产AV播放| 五月丁香久久激情网| WWW嗯嗯啊啊啊啊| 久久AV电影| 亚洲啪啪自拍| 欧美综合五月丁香六月婷| www.9操| 99色免费视频| 欧美日韩中国| 婷婷五月综合啪| 婷婷色狠狠| 色播五月婷婷| 日本97在线视频| 九九伊人网| 丁香五月天导航| 超碰免费人人| 啪啪五月天啪啪| 99热综合在线观看| 狠狠五月激情婷婷直播片| 色综啪啪啪啪啪啪| 殴美综合激情五月天免费视频| 国产无人区大片| 婷婷丁香九月| 久久天天天| 极品人妻VIDEOSSS人妻| 激情久久综合网| 色综啪啪| 国产精品国产| 国产亚洲99久久精品| 少妇性按摩无码中文A片| 色五月丁香五月五月婷婷| 成人.在线日韩| 久久婷婷综合五月趴| 97热在线精品| 狠狠色成人影片| 色综合xx| 婷婷综合伊人| 色五月天丁香| 99热网站在线观看| 日韩无码AV电影网站| 久久久久久性爱视频| 色婷婷五月在线| 丁香五月婷婷基地| 丁香五月天在线观看视频| 免费看欧美成人A片无码| 久久黄色片| 丁香婷婷五月天激情四射| 免费看欧美成人A片无码| 五月久久亚洲| 中文字幕av在线播放| 9久热| 中文在线视频久1| 九九99在线| 色婷久久| 色五月丁香伊人五月| 亚洲无码另类| 国产性av| 久久婷婷视频| 丁香激惜男女| 中文av在线观看| 久久久久久人妻| 老司机伊人| 综合久久综合久久| 91性交在线播放| yellow视频在线观看91| 丁香婷婷六月激情| 激情婷婷网| 国产乱妇无乱码大黄AA片| 五月天成人综合|