色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

VS Code 調(diào)試 STM32 實(shí)戰(zhàn):OpenOCD + Cortex-Debug 替代 Keil

VS Code 調(diào)試 STM32 實(shí)戰(zhàn):OpenOCD + Cortex-Debug 替代 Keil 1. 為什么要在 VS Code 里調(diào)試 STM321.1 從 Keil 到 VS Code 的遷移動(dòng)機(jī)我最早接觸 STM32 開發(fā)時(shí)用的是 Keil MDK。那個(gè)年代沒得選Keil 就是標(biāo)準(zhǔn)答案。但用久了之后有幾個(gè)問題越來越讓人難受編輯器體驗(yàn)停留在十年前代碼補(bǔ)全基本靠猜多文件跳轉(zhuǎn)慢得讓人想砸鍵盤版本管理更是噩夢(mèng)——.uvprojx文件每次合并都像拆炸彈。后來我開始嘗試在 VS Code 里寫代碼、在 Keil 里編譯調(diào)試這種“兩頭跑”的模式雖然能忍但終究不夠優(yōu)雅。真正讓我下決心徹底遷移的是項(xiàng)目規(guī)模變大之后。一個(gè)工程幾十個(gè)源文件Keil 的代碼導(dǎo)航幾乎癱瘓而 VS Code 的 IntelliSense、全局搜索、Git 集成、多光標(biāo)編輯每一樣都是實(shí)打?qū)嵉男侍嵘?。更關(guān)鍵的是VS Code 的調(diào)試體驗(yàn)——變量監(jiān)視、調(diào)用棧、斷點(diǎn)管理、外設(shè)寄存器查看——一旦用順手就再也回不去了。這篇文章要聊的就是怎么在 VS Code 里搭建一套完整的 STM32 調(diào)試環(huán)境。不是那種“能編譯就行”的將就方案而是真正能替代 Keil 調(diào)試器的完整工作流。涉及的工具鏈包括ARM GNU Toolchain、OpenOCD、Cortex-Debug 插件以及 VS Code 本身的配置。適合已經(jīng)有一定 STM32 基礎(chǔ)、想提升開發(fā)效率的嵌入式軟件工程師也適合剛?cè)腴T、想從一開始就建立現(xiàn)代開發(fā)環(huán)境的新手。1.2 這套方案能解決什么問題先說清楚這套方案的能力邊界。配好之后你可以在 VS Code 里完成以下操作用arm-none-eabi-gcc編譯整個(gè)工程生成.elf和.bin文件用 OpenOCD 連接 ST-Link 或 J-Link燒錄程序到芯片在 VS Code 里直接下斷點(diǎn)、單步執(zhí)行、查看變量和寄存器通過launch.json配置多套調(diào)試方案一鍵切換配合 Cortex-Debug 插件實(shí)時(shí)查看外設(shè)寄存器的值用tasks.json把編譯、燒錄、調(diào)試串成一條流水線不能做的事也要說清楚這套方案不依賴 Keil 的編譯器所以如果你用的是 Keil 特有的語(yǔ)法擴(kuò)展或者 RTE 組件需要做適配。另外STM32CubeMX 生成的工程默認(rèn)是給 Keil 或 IAR 用的需要手動(dòng)調(diào)整 Makefile 或 CMakeLists。提示如果你現(xiàn)在還在用 Keil 的“Debug模式”查看結(jié)構(gòu)體變量遷移到 VS Code 后會(huì)發(fā)現(xiàn)變量監(jiān)視窗口的體驗(yàn)完全不是一個(gè)級(jí)別——可以展開嵌套結(jié)構(gòu)體、可以固定監(jiān)視表達(dá)式、可以在調(diào)試控制臺(tái)里直接調(diào)用函數(shù)。1.3 整體工具鏈選型與理由在動(dòng)手之前先把工具鏈的選型邏輯講清楚。嵌入式調(diào)試的本質(zhì)是IDE 通過調(diào)試探針與芯片的調(diào)試接口通信控制 CPU 的執(zhí)行流讀寫內(nèi)存和寄存器。VS Code 本身不具備這個(gè)能力它需要借助外部工具。我選擇的組合是組件選型作用為什么選它編譯器ARM GNU Toolchain把 C/C 源碼編譯成 ARM 機(jī)器碼免費(fèi)、開源、社區(qū)支持好、與 CMake 集成順暢調(diào)試服務(wù)器OpenOCD與 ST-Link/J-Link 通信提供 GDB Server支持芯片多、配置靈活、開源調(diào)試客戶端GDB (arm-none-eabi-gdb)發(fā)送調(diào)試命令控制程序執(zhí)行GNU 標(biāo)準(zhǔn)工具與 OpenOCD 配合成熟VS Code 插件Cortex-Debug在 VS Code 里集成 GDB 調(diào)試界面專為 ARM Cortex-M 設(shè)計(jì)支持外設(shè)寄存器查看構(gòu)建系統(tǒng)Make 或 CMake管理編譯流程靈活、可腳本化、適合持續(xù)集成這套組合的核心優(yōu)勢(shì)是解耦編譯器、調(diào)試服務(wù)器、調(diào)試客戶端、IDE 界面各司其職任何一層都可以替換。比如你不想用 OpenOCD可以換成 pyOCD 或 J-Link GDB Server不想用 Make可以換成 CMake 或 Ninja。這種靈活性是 Keil 那種一體化 IDE 給不了的。2. 環(huán)境搭建的完整步驟2.1 安裝 ARM GNU Toolchain 與 OpenOCD第一步是裝編譯器。去 ARM 官網(wǎng)下載ARM GNU Toolchain的 Windows 或 Linux 版本注意選arm-none-eabi那個(gè)不要選成aarch64-none-elf。安裝時(shí)勾選“Add to PATH”這樣在終端里可以直接調(diào)用arm-none-eabi-gcc。裝完后驗(yàn)證一下arm-none-eabi-gcc --version如果輸出了版本號(hào)說明安裝成功。我實(shí)測(cè)下來目前比較穩(wěn)定的版本是 12.3.rel1 和 13.2.rel1太新的版本偶爾會(huì)有鏈接腳本兼容性問題。接下來裝 OpenOCD。Windows 用戶可以去 xPack 的 GitHub Release 頁(yè)面下載預(yù)編譯包解壓后把bin目錄加到 PATH。Linux 用戶直接apt install openocd就行但要注意發(fā)行版自帶的版本可能比較老建議從源碼編譯或者用 xPack 的包。驗(yàn)證 OpenOCDopenocd --version然后測(cè)試一下能不能識(shí)別到 ST-Linkopenocd -f interface/stlink.cfg -f target/stm32f1x.cfg如果輸出里出現(xiàn)Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints之類的信息說明連接正常。按CtrlC退出。注意OpenOCD 的target配置文件要根據(jù)你的芯片型號(hào)選。STM32F1 用stm32f1x.cfgF4 用stm32f4x.cfgH7 用stm32h7x.cfg。選錯(cuò)了會(huì)連不上或者行為異常。2.2 VS Code 插件安裝與配置VS Code 本身去官網(wǎng)下載安裝這一步?jīng)]什么好說的。裝完后需要安裝幾個(gè)關(guān)鍵插件Cortex-Debug核心調(diào)試插件提供 GDB 集成和外設(shè)寄存器查看C/C提供 IntelliSense 和代碼導(dǎo)航Makefile Tools或CMake Tools根據(jù)你的構(gòu)建系統(tǒng)選ARM Assembly如果需要看匯編代碼這個(gè)插件提供語(yǔ)法高亮Cortex-Debug 的配置是重點(diǎn)。安裝后在 VS Code 的設(shè)置里搜索cortex-debug需要配置幾個(gè)關(guān)鍵項(xiàng){ cortex-debug.armToolchainPath: C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/12.3 rel1/bin, cortex-debug.openocdPath: C:/OpenOCD/bin/openocd.exe, cortex-debug.gdbPath: C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/12.3 rel1/bin/arm-none-eabi-gdb.exe }路徑要根據(jù)你的實(shí)際安裝位置改。Linux 下通常是/usr/bin/arm-none-eabi-gdb和/usr/bin/openocd。2.3 工程目錄結(jié)構(gòu)與 Makefile 編寫VS Code 不像 Keil 那樣有固定的工程結(jié)構(gòu)你需要自己組織目錄。我習(xí)慣用這樣的結(jié)構(gòu)project/ ├── .vscode/ │ ├── launch.json │ ├── tasks.json │ └── settings.json ├── Core/ │ ├── Inc/ │ └── Src/ ├── Drivers/ │ ├── CMSIS/ │ └── STM32F1xx_HAL_Driver/ ├── Startup/ │ └── startup_stm32f103xb.s ├── Linker/ │ └── STM32F103C8Tx_FLASH.ld ├── Makefile └── build/Makefile 是編譯的核心。我寫一個(gè)最簡(jiǎn)版本你可以根據(jù)工程實(shí)際情況擴(kuò)展TARGET firmware BUILD_DIR build CC arm-none-eabi-gcc AS arm-none-eabi-gcc -x assembler-with-cpp CP arm-none-eabi-objcopy SZ arm-none-eabi-size CPU -mcpucortex-m3 FPU MCU $(CPU) -mthumb $(FPU) C_SOURCES $(wildcard Core/Src/*.c) $(wildcard Drivers/STM32F1xx_HAL_Driver/Src/*.c) ASM_SOURCES Startup/startup_stm32f103xb.s C_INCLUDES -ICore/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/CMSIS/Include -IDrivers/CMSIS/Device/ST/STM32F1xx/Include CFLAGS $(MCU) $(C_INCLUDES) -Og -g3 -gdwarf-2 -Wall -fdata-sections -ffunction-sections LDFLAGS $(MCU) -TLinker/STM32F103C8Tx_FLASH.ld -Wl,--gc-sections -Wl,-Map$(BUILD_DIR)/$(TARGET).map OBJECTS $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c.o))) vpath %.c $(sort $(dir $(C_SOURCES))) OBJECTS $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s.o))) vpath %.s $(sort $(dir $(ASM_SOURCES))) all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms$(BUILD_DIR)/$(notdir $(:.c.lst)) $ -o $ $(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) $(AS) -c $(CFLAGS) $ -o $ $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile $(CC) $(OBJECTS) $(LDFLAGS) -o $ $(SZ) $ $(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) $(CP) -O ihex $ $ $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) $(CP) -O binary -S $ $ $(BUILD_DIR): mkdir $ clean: -rm -fR $(BUILD_DIR)這個(gè) Makefile 的關(guān)鍵點(diǎn)在于-Og -g3 -gdwarf-2這三個(gè)編譯選項(xiàng)。-Og是優(yōu)化等級(jí)比-O0稍好又不會(huì)像-O2那樣把變量?jī)?yōu)化掉導(dǎo)致調(diào)試?yán)щy。-g3生成最詳細(xì)的調(diào)試信息包括宏定義。-gdwarf-2指定調(diào)試信息格式Cortex-Debug 對(duì) DWARF 2 的支持最穩(wěn)定。實(shí)操心得如果你發(fā)現(xiàn)調(diào)試時(shí)某些變量顯示為optimized out八成是優(yōu)化等級(jí)太高。把-Og改成-O0試試。但-O0生成的代碼體積會(huì)大不少Flash 小的芯片要權(quán)衡。2.4 launch.json 與 tasks.json 配置詳解launch.json是調(diào)試配置的核心。下面是一個(gè)針對(duì) STM32F103 ST-Link 的完整配置{ version: 0.2.0, configurations: [ { name: Debug (OpenOCD), type: cortex-debug, request: launch, servertype: openocd, cwd: ${workspaceFolder}, executable: ${workspaceFolder}/build/firmware.elf, device: STM32F103C8, configFiles: [ interface/stlink.cfg, target/stm32f1x.cfg ], svdFile: ${workspaceFolder}/STM32F103.svd, runToEntryPoint: main, preLaunchTask: build, showDevDebugOutput: none, armToolchainPath: C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/12.3 rel1/bin, openocdPath: C:/OpenOCD/bin/openocd.exe, gdbPath: C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/12.3 rel1/bin/arm-none-eabi-gdb.exe } ] }幾個(gè)關(guān)鍵字段解釋一下executable指向編譯生成的.elf文件GDB 從這里讀取符號(hào)信息device芯片型號(hào)Cortex-Debug 用它來匹配 SVD 文件svdFileSVD 文件路徑這是查看外設(shè)寄存器的關(guān)鍵。SVD 文件可以從 ST 官網(wǎng)下載或者從 Keil 的芯片包里提取runToEntryPoint啟動(dòng)后自動(dòng)運(yùn)行到main函數(shù)省得手動(dòng)下斷點(diǎn)preLaunchTask調(diào)試前自動(dòng)執(zhí)行的任務(wù)這里指向buildtasks.json定義構(gòu)建任務(wù){(diào) version: 2.0.0, tasks: [ { label: build, type: shell, command: make, args: [-j4], group: { kind: build, isDefault: true }, problemMatcher: [$gcc], detail: 編譯整個(gè)工程 }, { label: flash, type: shell, command: openocd, args: [ -f, interface/stlink.cfg, -f, target/stm32f1x.cfg, -c, program build/firmware.elf verify reset exit ], dependsOn: [build], detail: 燒錄程序到芯片 } ] }-j4表示用 4 個(gè)線程并行編譯根據(jù)你的 CPU 核心數(shù)調(diào)整。problemMatcher設(shè)為$gcc后編譯錯(cuò)誤會(huì)直接顯示在 VS Code 的問題面板里點(diǎn)擊就能跳轉(zhuǎn)到對(duì)應(yīng)代碼行。3. 調(diào)試實(shí)操與核心技巧3.1 斷點(diǎn)、單步與變量監(jiān)視的實(shí)戰(zhàn)操作配置好之后按F5啟動(dòng)調(diào)試。Cortex-Debug 會(huì)自動(dòng)啟動(dòng) OpenOCD、連接 GDB、燒錄程序、運(yùn)行到main函數(shù)。整個(gè)過程大概兩三秒比 Keil 的調(diào)試啟動(dòng)速度快不少。斷點(diǎn)的使用和 Keil 類似在行號(hào)左側(cè)點(diǎn)擊即可。但 VS Code 的斷點(diǎn)管理更強(qiáng)可以在斷點(diǎn)面板里給斷點(diǎn)加條件、加命中次數(shù)、加日志消息。比如你想在某個(gè)循環(huán)執(zhí)行到第 100 次時(shí)停下來右鍵斷點(diǎn)選“編輯斷點(diǎn)”輸入條件i 100就行。變量監(jiān)視窗口是重點(diǎn)。Keil 的變量窗口只能看基本類型結(jié)構(gòu)體要展開好幾層。VS Code 的監(jiān)視窗口支持展開任意深度的嵌套結(jié)構(gòu)體固定監(jiān)視表達(dá)式比如huart1在調(diào)試控制臺(tái)里直接調(diào)用函數(shù)比如HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)查看數(shù)組的任意區(qū)間比如buffer[10..20]我實(shí)測(cè)下來查看 STM32 HAL 庫(kù)里的UART_HandleTypeDef結(jié)構(gòu)體時(shí)VS Code 能直接展開到Instance-SR寄存器級(jí)別比 Keil 直觀得多。提示如果變量顯示為optimized out除了降低優(yōu)化等級(jí)還可以在launch.json里加gdbTarget: localhost:3333并配合-O0編譯。另外把變量聲明為volatile也能防止被優(yōu)化掉。3.2 外設(shè)寄存器查看與 SVD 文件配置SVDSystem View Description文件是 Cortex-Debug 的殺手锏。它用 XML 描述了芯片所有外設(shè)寄存器的地址、位域、讀寫權(quán)限。配置好之后調(diào)試時(shí)可以在“XPERIPHERALS”面板里實(shí)時(shí)查看和修改寄存器值。SVD 文件從哪來三個(gè)途徑ST 官網(wǎng)的芯片頁(yè)面在“Design Resources”里找 SVD 文件Keil 的芯片包安裝目錄通常在Keil_v5/ARM/PACK/Keil/STM32F1xx_DFP/x.x.x/CMSIS/SVD/GitHub 上的cmsis-svd倉(cāng)庫(kù)有社區(qū)維護(hù)的版本拿到 SVD 文件后在launch.json里用svdFile字段指向它。調(diào)試啟動(dòng)后VS Code 底部會(huì)出現(xiàn)“XPERIPHERALS”面板展開就能看到 GPIOA、USART1、TIM2 等外設(shè)的寄存器。這個(gè)功能在調(diào)試 GPIO 時(shí)特別有用。比如你配置了 PA0 為輸出但 LED 不亮可以直接在寄存器面板里看GPIOA-ODR的 bit0 是不是 1。如果不是說明代碼沒執(zhí)行到如果是 1 但燈不亮說明硬件有問題。這種排查效率比打印日志高得多。3.3 串口調(diào)試與日志輸出配合調(diào)試嵌入式程序串口打印是少不了的。VS Code 里可以用Serial Monitor插件或者直接用screen/minicom。我習(xí)慣在tasks.json里加一個(gè)任務(wù)調(diào)試時(shí)自動(dòng)打開串口{ label: serial, type: shell, command: python, args: [-m, serial.tools.miniterm, COM3, 115200], problemMatcher: [] }更高級(jí)的玩法是把串口輸出和 GDB 調(diào)試結(jié)合起來。Cortex-Debug 支持rttConfig可以用 SEGGER RTT 代替串口速度更快還不占用 UART 外設(shè)。配置如下rttConfig: { enabled: true, address: auto, decoders: [ { port: 0, type: console, label: RTT Channel 0 } ] }RTT 需要在代碼里集成 SEGGER 的 RTT 庫(kù)然后在需要打印的地方調(diào)用SEGGER_RTT_printf(0, value %d\n, value)。輸出會(huì)直接顯示在 VS Code 的調(diào)試控制臺(tái)里和 GDB 的輸出混在一起非常方便。注意RTT 的address設(shè)為auto時(shí)Cortex-Debug 會(huì)自動(dòng)搜索 RTT 控制塊。如果搜不到可以手動(dòng)指定地址通常在 RAM 的末尾區(qū)域。3.4 多工程與多目標(biāo)調(diào)試配置實(shí)際項(xiàng)目中經(jīng)常需要在多個(gè)工程之間切換或者同一個(gè)工程有多個(gè)構(gòu)建目標(biāo)比如 Bootloader 和 Application。VS Code 的launch.json支持配置多個(gè)調(diào)試方案在調(diào)試面板的下拉菜單里切換。比如一個(gè) STM32 項(xiàng)目有 Boot 和 App 兩個(gè)目標(biāo){ configurations: [ { name: Debug Bootloader, type: cortex-debug, request: launch, executable: ${workspaceFolder}/boot/build/boot.elf, device: STM32F103C8, configFiles: [interface/stlink.cfg, target/stm32f1x.cfg], svdFile: ${workspaceFolder}/STM32F103.svd }, { name: Debug Application, type: cortex-debug, request: launch, executable: ${workspaceFolder}/app/build/app.elf, device: STM32F103C8, configFiles: [interface/stlink.cfg, target/stm32f1x.cfg], svdFile: ${workspaceFolder}/STM32F103.svd } ] }調(diào)試 App 時(shí)需要先燒錄 Boot再燒錄 App然后附加到 App 的地址??梢栽趌aunch.json里加preLaunchTask: flash-boot來自動(dòng)化這個(gè)過程。4. 常見問題與排查技巧實(shí)錄4.1 OpenOCD 連接失敗的五種典型情況調(diào)試環(huán)境搭不起來十有八九是 OpenOCD 連不上。我把踩過的坑整理成一張速查表現(xiàn)象可能原因解決方法Error: open failedST-Link 驅(qū)動(dòng)沒裝好裝 ST-Link 官方驅(qū)動(dòng)或換 USB 口Error: init mode failed芯片被讀保護(hù)或休眠用 ST-Link Utility 解除讀保護(hù)或按住復(fù)位鍵再連接Error: target not examined yet配置文件選錯(cuò)確認(rèn)target/stm32f1x.cfg和芯片型號(hào)匹配Error: timed out while waiting for target halted芯片跑飛或時(shí)鐘配置錯(cuò)誤在 OpenOCD 配置里加reset_config srst_onlyError: JTAG scan chain interrogation failedSWD 引腳被復(fù)用檢查代碼里有沒有把 PA13/PA14 配成普通 GPIO最坑的是最后一種。我有一次調(diào)一個(gè)項(xiàng)目OpenOCD 死活連不上換了三根線、兩個(gè) ST-Link 都不行。最后發(fā)現(xiàn)是代碼里把 SWD 引腳復(fù)用成了普通 IO芯片一上電就執(zhí)行了那段代碼導(dǎo)致調(diào)試接口失效。解決辦法是在main函數(shù)開頭加延時(shí)或者用__HAL_RCC_GPIOA_CLK_ENABLE()之前先確保 SWD 引腳沒被改。實(shí)操心得如果芯片已經(jīng)被“鎖死”可以嘗試按住復(fù)位鍵點(diǎn)擊調(diào)試啟動(dòng)等 OpenOCD 開始連接時(shí)松開復(fù)位鍵。這樣芯片會(huì)在復(fù)位后短暫停留在初始狀態(tài)給調(diào)試器一個(gè)連接窗口。4.2 變量顯示異常與優(yōu)化等級(jí)的關(guān)系調(diào)試時(shí)變量顯示為optimized out或者值不對(duì)是新手最常遇到的問題。根本原因是編譯器優(yōu)化把變量存到了寄存器里或者直接消除了。解決辦法分三層第一層把編譯選項(xiàng)改成-O0 -g3。這是最直接的辦法但代碼體積會(huì)增大 30% 到 50%Flash 小的芯片可能放不下。第二層給關(guān)鍵變量加volatile關(guān)鍵字。volatile告訴編譯器“這個(gè)變量可能被外部修改不要優(yōu)化它”。比如volatile uint32_t counter 0;第三層用__attribute__((used))強(qiáng)制保留變量__attribute__((used)) static uint32_t debug_buffer[16];我一般先用-Og編譯如果發(fā)現(xiàn)某個(gè)變量看不到再單獨(dú)給它加volatile。這樣兼顧了代碼體積和調(diào)試體驗(yàn)。4.3 斷點(diǎn)不生效與 Flash 斷點(diǎn)數(shù)量限制STM32 的硬件斷點(diǎn)數(shù)量有限Cortex-M3/M4 通常只有 6 個(gè)M0 只有 4 個(gè)。如果你下了超過這個(gè)數(shù)量的斷點(diǎn)多出來的斷點(diǎn)會(huì)變成“軟件斷點(diǎn)”需要修改 Flash 內(nèi)容可能導(dǎo)致程序行為異常。Cortex-Debug 會(huì)在調(diào)試控制臺(tái)里提示斷點(diǎn)類型。如果看到Warning: Cannot insert breakpoint之類的信息說明硬件斷點(diǎn)用完了。解決辦法減少同時(shí)生效的斷點(diǎn)數(shù)量用條件斷點(diǎn)代替多個(gè)普通斷點(diǎn)把斷點(diǎn)下在 RAM 函數(shù)里RAM 斷點(diǎn)不占用硬件斷點(diǎn)資源用watchpoint代替斷點(diǎn)監(jiān)視變量變化而不是代碼位置另外Flash 斷點(diǎn)在每次修改代碼后需要重新燒錄才能生效。如果你改了代碼但沒重新編譯燒錄斷點(diǎn)位置可能對(duì)不上。養(yǎng)成習(xí)慣改完代碼先CtrlShiftB編譯再F5調(diào)試。4.4 調(diào)試速度慢與 GDB 配置調(diào)優(yōu)有些同學(xué)反映 VS Code 調(diào)試比 Keil 慢單步執(zhí)行要等一兩秒。這通常是 GDB 的配置問題。可以在launch.json里加幾個(gè)優(yōu)化項(xiàng)gdbTarget: localhost:3333, showDevDebugOutput: none, breakAfterReset: false, runToEntryPoint: main, preLaunchTask: buildshowDevDebugOutput設(shè)為none可以關(guān)閉 GDB 的詳細(xì)日志輸出減少界面刷新開銷。breakAfterReset設(shè)為false避免復(fù)位后自動(dòng)暫停。還有一個(gè)隱藏的性能殺手是 SVD 文件太大。有些廠商的 SVD 文件包含了幾百個(gè)外設(shè)定義Cortex-Debug 每次刷新都要解析一遍。如果覺得卡可以手動(dòng)裁剪 SVD 文件只保留你實(shí)際用到的外設(shè)。我實(shí)測(cè)下來優(yōu)化后的調(diào)試啟動(dòng)時(shí)間在 2 秒左右單步執(zhí)行延遲在 200 毫秒以內(nèi)和 Keil 的體驗(yàn)基本持平。如果還是慢檢查一下 USB 線是不是接在了 USB Hub 上直連主板 USB 口會(huì)快很多。4.5 從 Keil 遷移時(shí)的兼容性問題最后聊聊從 Keil 遷移過來時(shí)容易踩的坑。第一個(gè)坑是__weak函數(shù)。Keil 和 GCC 對(duì)__weak的支持方式不同。GCC 用__attribute__((weak))Keil 用__weak。STM32 HAL 庫(kù)里已經(jīng)做了兼容處理但你自己寫的代碼要注意。第二個(gè)坑是內(nèi)聯(lián)匯編語(yǔ)法。Keil 用__asm關(guān)鍵字GCC 用asm volatile。如果工程里有大量?jī)?nèi)聯(lián)匯編遷移工作量不小。第三個(gè)坑是鏈接腳本。Keil 用.sct分散加載文件GCC 用.ld鏈接腳本。STM32CubeMX 生成的工程里兩個(gè)都有但內(nèi)容需要對(duì)應(yīng)。如果你改了內(nèi)存布局兩邊都要改。第四個(gè)坑是中斷向量表。Keil 的啟動(dòng)文件是.s格式GCC 也是.s但語(yǔ)法有差異。建議直接用 STM32CubeMX 生成的 GCC 版本啟動(dòng)文件不要手動(dòng)改 Keil 的。遷移完成后你會(huì)發(fā)現(xiàn) VS Code 的調(diào)試體驗(yàn)確實(shí)比 Keil 好一個(gè)檔次。特別是變量監(jiān)視和外設(shè)寄存器查看一旦用習(xí)慣就回不去了。我現(xiàn)在手頭的 STM32 項(xiàng)目全部遷移到了 VS CodeKeil 只留著打開老工程用。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97干色天堂| 欧美东京热精品A∨| 久久大黄片| 三级日韩一区二区三区| 美女露胸露屁股| 日本欧美中文字幕| 欧日韩一二三f区| 色五月av| 在线观看中文字幕| 国产精品视频| 三级三久久线久久99久目本WW| 四虎免费在线播放| 日韩一999精品| 一本大道不卡一二三区| 欧美人黑A片无码免视费| 国产精品视频播放| 亚洲精品aa久久伊人| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 男人综合网| 亚洲黑丝在线| 岛国激情视频在线观看| 嗯嗯啊啊啊好爽| 91蜜臀熟女| 人妻少妇精品| 亚洲情色在线| 国产青视频| 强奸乱伦Av网| 中文字幕三四区| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 91超碰丝袜制服| 日韩熟妇二区| 色哟哟的毛片| 国产强奸超碰AV| 爱爱动态60秒| 中文字幕视频二区| 天操老女人| 男人兔费天堂| 超碰综合97在线| 黄色不卡视频| 欧美日韩人妻婷婷一区| 国产精品电影推荐| 99热精品国产| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 亚洲综合射| 熟妇人妻一区二区| 蜜桃传媒一区二区亚洲| 熟女色图在线| 大香蕉免| 极品出轨视频网站| 2017天天拍大香蕉| 蜜臀久久99精品久久久久久成人小说 | 亚洲一区二区三区久久 亚洲一区二区| 中国探花熟女| 强奸乱伦av电影| 天天精品| www.97在线| 欧美页片| 成人一二| 国产精品一区av在线| 成人羞羞视频国产| 在线人人人人人人精品超| 国产精品视频精品一二| 图片区小说区| 香蕉一区二区三区在线视频| 久久夜夜夜| 亚洲色图国产另类| 超碰97伊人| 国产黄色视频久久| 九色婷婷| 一个人在线看的黄色电影网站| 超碰99热中文字幕| 国产无码精品久久久久久| 超碰这里有精品| 欧美日韩黄片精品在线| 熟女乱3伦999| 国产精品一二三在线看| 中日韩久久久| 日本 欧美 亚中文字幕| 中文字幕天天操| 超碰97久| 欧美色图亚洲激情| 免费人成?大片在线播放| 亚洲精品 大香蕉| 久神马| 欧美综合网站999| yw尤物av无码点击进入麻豆| 婷婷91| 好看的91视频| 综合视频91| 国产麻豆91欧美一区二区久久婷婷国产精品 | 神马久久久久久久久久久久| 好吊色综合| 天天做日日做| 日本一区二区三区精品| 欧美日综合| 91精品国产91熟女| 精品在线观看视频在线| 日日黄色三级网站| 青青草国产欧美非洲黑人| 国产h片在线观看视频| 欧美性生活综合| 欧美成人一区二区| 在线毛片片免费观看| 我爱大香蕉| 久久一二三四不卡| 国产一区二区成人av在线播放| 精品超碰国产| 大香蕉之青青草原| 淫荡熟女乱伦网| 精品国产人成在线| 青青草视频久久久久| 亚洲做性| 久草福利在线资源站| 99re在线观看| 日韩黄色av中文字幕| 久久9 9 9精品| 久操av在线| 天天亚洲| 国模不卡| 99国产精品人妻人伦| 久久九色| 欧美中文字幕男人天堂久久精品| 另类图片天天影视| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 在线看片国产精品每日更新| 亚洲综合网图| 亚洲精品xxx| 中文字幕免费观看| 白丝被操91| 人人乐大香蕉| 少妇久久久久久| 亚洲色图激情小说| 欧美一区二区三区互相| 香港成人一级视频在线青青草| 亚洲av无码成电影在线播放| 日日骚精品视频| 岛国在线一区二区三区| 草b在线 | 国产美女在线精品免费看| 六六久久日韩不卡| 色哟哟 日韩精品| 蜜桃成人1区2区3区| 国产精品爆乳懂色蜜乳| 老司机久久| 免费操逼视频下载| 四季av一区二区凹凸精品小说| 日韩国产中文字幕| 青草精品视频一日本久久久久网站| A V少妇特黄三级| 国产在线播放成人免费| 日本道日本道中文字幕日本道最新日本道在线观看 | 78精品| 最新加勒比丝袜在线| 秋霞怕怕片| 亚洲青青草| 日韩操啪| 欧美在线大香999| 久久婷婷五月天| 96一区二区| 亚洲天堂另类小说男人| 国产亚洲美日韩Aⅴ中文字幕无码成人| 曰韩少妇无码| AV天天在线观看| 日韩免费大片一级播放| 校园春色AV天堂| 97视频7| AV不卡在线| 欧美色女人| 加勒比av网| 开心五月婷婷| 激情综合亚洲| 97视频在线看| 国产后入式在线观看| 91男女啊啊啊| 99久久99久久综合| 成人三级片无码| 国产精品高清2021在线| 97超级欧美| 丁香五月电影| 殴美大黄片| 亚洲天堂精品日韩电影| 成人精品无码| 欧美偷拍| 国产9熟妇视频网站| 久久久111| www五月| 欧美色交| 亚洲综合一| 欧美一二在线| 欧美暴力猛交| 美女高潮视频91| 黄aaaaaaaaaaaaaaaaaa色网站| 99久久国产精品免费高潮| 99re在线精品78| 精品乱子一区二区三区99| 91干熟女| 岛国免费视频在线| 久久精品国产99精品亚洲蜜...| 激情内射| 欧美激情内射| 高清孕妇孕交| 91色综合| 欧美日韩在线小说 | 久久久精久久久| 日韩性爱播放| 人人做人人妻人人夜视频| 91在线视频免费播放| 国产成人欧美精品在线| 日日日大屁股骚女人精品| 成人天天看站长推荐 | 欧美综合网A| 91蜜臀人妻中文字幕在线| 校园春色宗合网| 超碰日韩美妻| 青青草导航在线视频| 亚洲熟妇无码一区二区三区| 欧美性暴力猛交XXXX | 91美女在线视频| 夜夜操老骚逼视频网站| 日日噜噜夜夜久久亚洲一区二区| 91爱看| 97超碰中文| 熟女网站最新| 午夜精品久久久99热蜜桃的功能特点| 国产欧洲精品亚洲午夜拍精品| 韩日精品福利视频一区不卡在线免| 超碰地址97| 日产成人久久| 97超碰香蕉| 97在线免费| 亚洲精品一区二区精品| 91丨豆花丨熟女| 欧美偷| 色香综合| 欧美成人四级在线播放| 欧美性爱1080p| 午夜视频黄| 无码国产精品久久久久| 亚洲操人| 欧美狠狠弄| 欧美性五月| 久久欧美激情| 很黄很色的视频在线观看| 艹少妇网站| 久久,精品一二三| 中文字幕97色| 极品色| 黄色香蕉视频网站一区| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 蜜臀va69| A级片日韩欧美国产欧美视频精选观看 | 亚洲h片在线免费观看| 伊人网综合在线视频| h在线看免费版在线看| 亚州综合AⅤ| 国内精品久9| 搡老女人911熟妇老熟女| 国产亚洲精品美女久久久久久2021| 婷婷激情四射| 熟妇精品juliaannAV| 欧美日韩亚洲天堂| 国产精品制服丝袜清纯唯美| 久久久久国产亚洲一区欧美色图日韩| 亚洲天天自拍| 欧美在线观看综合国产| 97伪v| 91亚洲欧美激情| 蜜乳性色无码专日粉嫩骚逼AV| 亚洲人妻一区二区三区| 亚洲精品97久久中文字幕| 2023天天操夜夜操| 日韩AV片| 精品一区99999| 欧美日产国产在线成人第一区| 67194国产| 国产精品不卡一区二区三区| 男女啪啪啪18禁网站| 黄网在线播放| 欲综合网| 国产91会所女技师在线观看| 天堂av2019| 欧美色97| 99热精品在线| 天天爱天天操| 极品色社| 香蕉免费一区二区三区不读| 狠狠操夜夜| 日本东京热大香蕉a片| 亚洲天天在线| 91在线视频免费中出| 国产精品另类| 91在线无码精品秘 软件| 高清肉丝中文无码| 黄色视频60分钟| 国产午夜视频| 日本性爱欧美性爱| 美女黑人91神马| 美国日韩黄片| 九九九九免费高| 香蕉国产精品麻豆亚洲欧美日韩| 中文字幕一区二区三区蜜臀| 亚洲欧美人妻| 亚殴在线| 国产精品亚洲天堂网址| 成人精品视频一区二区| 9丨亚洲一区二区在线| 久久久久骚| 国产精品高清2021在线| 97色97好| 一区二区三区 日韩欧美| 热久日综合| 风流老熟女一区二区三区l| 日韩美女高潮喷水视频| 亚卅熟女乱色| 久久久人妻| 麻豆国产原创AV色哟哟| 国产成人精品必看 | 人妻蜜桃臀| A V少妇特黄三级| 五月丁香激情四射| 天天干1区2区在线| 熟女视频久久| 亚洲中字幕日本一区二区三区| 国产精品久久久亚洲一区| 高清无码久操视频| 日本二区不卡| 亭亭丁香激情| 欧美日韩 强奸乱伦| 精品无码久久| 欧美亚洲20p| 视频在线观看免费一区二区三区| 深夜国产福利| 色天堂综合| 色色婷婷五月天| 国产捆绑一区| 超碰97人人乐| 国产人伦精品一区二区三区| 美女自卫慰黄网站免费| av影片在线观看不卡| 亚洲日产专区婷婷| 久久超碰爱| 天天色综亚洲91污| 香蕉欧美| 97 色综合| 色噜噜人妻丝袜AV资源| 欧美日韩丝袜| 亚洲色图日韩精品| 思思热免费在线视频| 女同性恋中文字幕| 欧美综合传媒| 综合日本女人伊人| 天天综合精品| 无码高清专| 日韩欧美亚欧在线视频| 亚洲自拍97| 亚洲视频二区| 久久国产视频专区一二三 | 三级色影综合网| 亚洲图片 激情小说| 啊啊啊用力在线观看| 91狼人| 高清无码 国产精品| 日韩免费在线观看不卡| 欧美大的香蕉有线电视视频| 欧美精品,四区。五区| 99国产精品久久久久久久成人热| 草久久久| 少妇69中文| 久久久久精| 91xingse| 精品无吗久久| 国产蜜臀精品一区免费尤物| 熟女丰满人妻一区| 操逼日韩无码| 人人爱操| 亚洲高清无码免费观看视频| 亚洲色欲天天人妻无码系列专区| 欧美性爱第一区| 亚洲 欧美 偷拍 唯美| 肏逼视频日本| 亚洲影院无码在线| 天天影视色香欲综合网小说| 国产精品美女久久久久久网站| 久久精品超碰| 亚洲影视综合| 91人妻在线视频| 国产精品乱码久久久久| 91网站18禁| 欧美后入| 婷婷av在线中文字幕| 国产肏逼网站| 欧美精品日韩久久久九| 亚欧成人综合影院| 综合色色网| 色色五月婷| 一本一道人妻久久一区二区三区 | 激情接吻视频久久久久久| 不卡啪啪视频| 日日夜夜天天| 欧美最婬乱婬爆婬性视频 | 秋霞久久亚洲精品成人| 最新国产亚洲精品精品国产亚洲综合| 婷婷丁香六月| 久久伊人在线五区| 丝袜天堂网| 亚州,欧美在线| 精品视频在线观看| 国产一级不卡在线观看| 一本道综合色图| 国产农村妇女一区二区| 亚洲视频小说| 三及片网站| 日韩性爱啪啪视频| 日韩欧美tv一区二区在线观看| 91在线精品| 1024日韩| 欧美综合色综合| 欧美最大综合网| 中文字幕激情小说| 中文字幕91页| 99青草| 91操人| 久久粉色| 亚洲av影院在线观看| 国产精品秘 福利姬在线观看| 玖玖97综合 | 久操免费在线| 国产欧美精选激情视频| 亚洲中文字幕97久久精品少妇| 69人妻人人揉人人躁人人精品| 久久综合久色欧美综合狠狠| 少妇高潮九九九九九九九| 欧美区亚洲区偷拍区| 午夜性生活av免费在线看| 欧亚性爱在线视频| 插欧洲美女欧美精品| 蜜臀久久99精品久久久久久久久| 久久一二三四五六七八九区区| 久久久久96| 九九九精品成人免费视频小说| 新版天堂中文资源8在线| 91色碰| 全国男人天堂网| 亚洲一区中文精品| 日韩欧美女优电影| 加勒比无码毛片| 超碰人妻天天干| 日本一区三级韩国| 蜜臀久久99精品久久久久久| 日人妻视频91| 疯操AV| 久久久久久人妻一区精品色欧美| 亚洲欧美校园另类春色| 日韩精品 欧美激情| 岛国毛片在线观看免费| 插老姨肥穴| 成人怡红院| 色性综合| 亚洲欧美伦综合| 久久久婷婷婷| 人妻少妇久久| 久久精彩免费视频| 变态综合色| 久9热| 深喉吞精| 蜜臀av一区二区三区免费观看| 欧美综合色图片| 国产精品久久久久久久久AV大片| 偷拍新久久| 这里都是精品在线观看| 狠狠入| 久99热| 丰满人妻-区二区三区免费看| 黑人无码一区二区| 97人人夜| 999在线电影香蕉| 午夜九九九九九九| 啊啊啊啊啊啊在线看| 东北熟女91| 亚洲精品久久久久久久久豆丁网| 欧美v日韩v亚洲v最新在线| 亚洲男人的天堂一区二区| 超碰免费97| 久久超碰、| 亚洲精品一二牛牛| 蜜桃久久久久久久久久久久| 国产AV久久野战精品| julia ann久久| 免费在线观看国内色片网站网址| 999国产精品999久久久久久| 欧美天天拍| 国产精品内射婷婷一级二| 人妻在线大香蕉| 2019天天干天天操| 国产精品成人午夜福利| 99国内精品| 家庭乱伦国产| 97操综合| 91丝袜在线观看视频在线观看| 亚洲丝袜少妇在线| 97精品国产手机| 全球成人中文在线| 欧美97| 亚洲涩涩| 蜜臀久久一区二区| 午夜激情成人在线观看| 亚洲欧洲日韩中文字幕一区| 天堂日本亚洲欧美| 麻豆这里只有精品| 热久久无毒不卡| 一区二区三区 丝袜 高跟 美腿| 国产毛片久久久久久久| 国产日韩美女小穴视频网站不卡| 美女91在线观看| 一级免费啪啪片| 天天干天天舔| 亚洲图片欧美偷拍| 校园春色亚洲无码| 国产精品亚洲免费| 国产操偷| 操操逼视频| 一本色道久久综合狠狠操| 成人精品视频一区二区| 日本日皮视频逼| 亚洲āv网址在线观看| 亚洲综合伊人| 啊啊啊好舒服视频在线观看| 亚欧性爱ab| 久久久精品电影| 国产精品欧美在线观看| 日本免费一区二区不卡| 亚洲天堂人人妻| 99性爱视频| 曰韩av中文字幕专区| 久久这里只精品免费福利| 男人天堂新在线| 久久人妻一区二区三区高清| 欧美日韩国产电影| 欧美人妻色| 91视频国品一二三区| 精品超碰国产| 色色香蕉| 久久AV无码网址| 国产av波波国产精品| 探花精品 一区二区| 精品日日人妻| 91精品国| 五十路成人在线视频二区三区| 欧美情色男人的天堂| 91九色丨国产丨爆乳| 99热只有| 久久精精区一区二区一蜜桃一区二区| www.色婷婷.com| 亚洲色图欧美视频| 四虎影院成年人片| 色色操| 久久久久婷婷| 亚洲国产第一页综合视频| 欧美在线观看综合国产| 色色五月丁香| 人人扣人人操| 亚洲综合五月天| 日韩久久激情精品| 日本黄 R色 成 人网站| 亚洲成人免费在线| 色色五月婷| 深夜操逼网| 精品精品精品| 99国产在线绯色一区| 欧州激情视频在线一区二区| 欧亚第一综合网| 色综合99999| 青草园大香蕉| 九九九九AV| 超碰在线91| www.色吧5.com| 亚洲精品一二区| 欧亚性爱啪啪| 吻戏激情性巴克| 久热色情精品| AV色五月天| 在线五区| 成人小电影网站tex| 国产精品不卡高清在线观看| 无码区蜜乳| 福利色色| 久久精品国产精品亚洲艾通辽熟妇 | 激情久久av一区av二区av| 色色热| 日本青青草在线| 狠狠做深爱婷婷久久二区| 久久熟女嫩草成人片免费| 欧美性爱一区二区三区| 久久受www免费人成| 亚洲成人一区二区精品| 亚洲情色电影网| 曰本精品久久久| 超碰色美女| 人人操 欧美| 看一级黄色视频| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 九九探花视频在线观看| 99亚洲精品| 情色五月天网| 国产久久久久久| 成人a级高清视频在线观看| 激情六月婷婷| 欧美白嫩在线放| 国产视频第二页| 八人操人人摸人人看| 欧美后入式| 色婷婷综合网站| 人人干黄色| 91黄站| 欧美视频边做饭边橾| 丁香五月天堂网| 亚洲自拍另类丝袜综合| 国产又长又大又粗的视频| 国产辣妈在线视频福利| 亚洲五月婷| A啊啊在线观看| 91美女视频| 亚洲 欧美 手机在线观看| 亚洲大色堂| 久久国产精品m码| 中文字幕性感少妇av| 97在线青| 日语五十路和六十路亚洲国产精品| 欧美黄色大香蕉一区二区| 69人妻精品丰满熟女区| 一区二区乱码福利| 精品国产少妇高潮视频| 超碰色大香蕉| 果冻国产精品麻豆成人av| 色五月第四色| 亚洲图片色图欧美另类| 青青草久久一区网| 91天美| 翘臀vidoes| 天天影视综合色| 日本理论在线| 欧美日韩国产色五月综合在线| 日本1区2区不卡视频| AV天堂男人的天堂| 少妇久久久久久| 麻豆天美国美国产| 啪啪视频免费在线观看| 久久女人视频| 超碰97中文| 荡小穴在线观看| av三级电影在线播放| 国产按摩一区二区三区| 久久精品黄色| 98一区二区精品| 在线视频97| 偷拍亚洲高清图片| 色欲久久久久综合网| 亚洲 图片 欧美 色图| 欧美精品久久96人妻无码| 91红杏| 色综合天天| 久操在97| 午夜精品视频777| 美女十八禁| 亚洲91极品| 男人女人18禁片免费看网站| yazhousetuoumei| 亚洲国产精品9999在线观看| 欧美色图 人妻| 两性综合网| 亚洲一区二区三区婷婷| 中文字幕91综合| 亚欧性爱无码| 我要色综合网站| 亚洲 欧美 中文 日韩超碰| 激情黄色片在线观看| 日本新免费二区三区| 日本123区操B视频| 青草综合| 欧美一二级| yiqicaoav| 亚州欧美总和| 欧美亚洲玖玖玖| 无码人妻精品一区二区三区99不卡| 97爱碰| 蜜桃成人1区2区3区| 岛国黄片网站| 综合少妇网| 精品91摸| 九九综合久久| 五月天久久综合网| 超碰一区二区| 日本三级小说中文字幕| 亚洲精品乱码久久久久久蜜桃麻豆 | 啊啊啊啊啊啊啊啊要喷了| 日本精品第一视频在'| 又大又大又大又粗爽高潮观看| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 天堂v无码免费视频| 亚洲综合伊人| 亚州色图第三区| 手机在线视频国内精品| 96精品久久久久久久久久| 粉嫩AV输入| 韩国久久97| 强歼乱伦资源网| 思思热在线视频免费| JuliaAnnXXX888| 二对二中文字幕。| 水澄无码AV| 欧美亚洲| 成人自拍三级在线观看| 婷婷五月天激情四射| 91精品又粗又猛又爽| 国产农村妇女精品一二区| 色婷婷久久| 欧美一级久久久久久久大片动画| 日本一区二区不卡| 精品久久久久成人码免| 麻豆精品天美| 天天做天天爱天天爽AV| 黄色片大香蕉| 亚洲国产成人福利在线观看| 2017天天操天天日| 精品无码产区一区二| 10000部十八禁看电影| 婷婷日韩一区二区三区中文字幕在线| 我要看免费韩日黄片| 近亲乱伦一区二区| AV一区观看| 欧美精品二区视频在线| 999久久久| 色综合大香蕉| 成人性交午夜免费片| 国产精品久久久久999| 国产视频第2页| 啊啊啊不要好爽日韩无码一区| 日韩乱码Av| 欧美午夜精品久久久久久超碰| 色婷婷电影| 另类专区在线观看| 五月天社区| 91成人久久| 欧美日韩性爱无码| 自慰白浆在线观看| 欧美成人黄网色网站| 日本肏逼视频在线观看| 免费A V在线| 日韩性爱再线视频| 91成人在线免费视频| 日韩精品在线观看网站| 精品国产肉丝袜在线拍国语| 精品一二三区久久AAA片| 人人做人人妻人人夜视频| 强奸乱伦资源| 亚洲色久| 国产性感在线观看| 综合激情97| 国产日韩欧美| 亚春色色| 91人妻熟女| 无码动漫av中文字幕| 欧美精品日韩久久久九| 日韩免费大片一级播放| 六十路日本| 国产亚洲日本精品在线| 久久一二三四五六七八九区区区 | 东京热毛片177b2viP| 国产精品福利资源在线尤物| 无码最新| 在线无码操| 一区二区偷拍拍视频| 日韩在线观看中文字幕视频| 偷拍欧美激情| 日韩色女精品| 日韩日韩日韩-国产乱码精品一区二区| 骚女天天综合网| 日本成人A片网站| 亚洲AV秘 精品久久老牛影视| 婷婷久久综合久| 精品久久久久久久久久久久 | 国产中文精品一区二区在线观看| 婷婷亚洲综合| 亚洲国产一区二区三区在线| 天天草AV| 久久一二三四| 中国乱伦一区二区 | yw尤物av无码点击进入麻豆| 欧美日日操| 殴美牲| 久操av在线| 91久久青青草原精品| 国产午夜激片Av毛片不卡| 国产成人资源| 亚洲凸凹超碰成人| 天天射夜夜操| 亚洲图片激情综合另类| 日韩有码免费视频| 中文字幕二区| 精品无码一区二区三区色欲| 久久婷婷色| 91欧美综合在线| 伦理第一页| 黄色片大香蕉| 欧美青青视频| 九九亚洲| 99ri视频| 亚洲一二三四区在线免费看视频| 亚洲精品久久久久毛片A片拉屎 | 老司机午夜精品视频| 久久五月视频| 午夜欧美神马久久久久| 91 欧美| 成人欧美一区二区三区黑人一| 精品一久久久| 欧美亚洲国产91在线| 日韩乱码Av| 人妻精品一区一区三区蜜桃91| 小日子操bb在线看| 日韩AV一区二区三区三州三州| 干b网| 极品白嫩美女白浆成人福利在线看| 啊啊啊不要好爽日韩无码一区| 色欧美亚洲| 丁香五月激情网| 老司机香蕉| 日本一级二级三级网站| 久久噜| 欧美日韩国产高清在线一二三区| 亭亭丁香激情| 乱伦熟妇一区二区| 99re这里只有精品3| 国产免费内射视频| 青草视频在线看看看看看看看看看| 色欧美在线| 亚洲福利中文字幕在线| 亚洲天堂一二| 人人爱操| 天天天肏屄肏屄肏屄欧美欧美| 五月丁香综合啪啪| 日本欧美不卡| 五月丁香色色网| 怡红院成人视频| 亚洲国产精品久久久久久久久久| 人妻少妇无码| 五月丁香啪啪| 久久9久| 国产人伦精品一区二区三区| 手机午夜电影神马久久| 91撸色网 玖玖网 欧美| 国产欧美成人第一页在线观看| 中文字幕在线2| 欧美性生活男人的天堂| 人人综合| 成人午夜小视频手机在线看| 国产97在线播放| 亚洲欧美成人在线| 人人妻人人玩人人澡人人爽| julia在线观看久久| 永久电影三级在线观看| 麻豆一区在线| 亚洲色欲天天人妻无码系列专区| 国产精品大屁股999| 99热这里只有精| 免费A片三p视频| 亚洲免费日韩在线一区二区| 操高情无码| 97视频免费播放| 青青草伊人久久| 狠狠色噜噜狠狠狠狠狠色综合久久 | 欧美性暴力| 99精品网站| 免费看日产一区二区三区| 亚洲在线欧美| 久久久久久久久久久久九| 婷婷伊人綜合中文字幕| 亚洲人成网站7777| 亚洲AV在线资源| 欧美天天插| 91精品国产日韩欧美综合| 天天综合~91| 九九成人精品| 色婷婷五月天| 91艹B视频| 97免费在线观看| 亚洲自拍欧美国产首页网曝| 激情久久久| 免费观看国产小粉嫩喷水精品午| 亚洲成成熟女人综合一区二区| 亚洲日韩肥臀视频在线观看| 亚洲无码久久久久久久| 久久精品熟女亚洲AV麻豆软件| 美女干逼2| 97午夜剧场日韩| 黄片不用下载在线观看| 人妻三级在线中文字幕| 色哟哟av| 精品人妻一区春色| 国产精品蜜乳AV| a片 xxxx受爽视频| 一区二区三区一亚洲中文字幕、综合区灬 | 国产精品对白内射| 人人操,操人人| 欧美色97| 99999精品成人| 天天操夜夜嗨| 亚洲欧美综合| 欧洲站一级二级三级h| 欧美日韩电影一区二区| 在线观看一卡二卡| 日本成人电影资源网| 黄片qw| 97精品久久| 色香av| 久久久精品九| daxiangjiao你懂的| 9热9热综合网| 亚洲男人天堂Av| 日韩无码专区| 国产树林里野战在线看| 26uuu成人影片| 久久久久久精| 亚洲加勒比| 极品色综合| 日韩欧美蜜桃精品久久中文字幕久久| 日本久久综合| 91欧美美女日韩国产婷婷| 伊人97色天使| 日韩天堂av电影在线观看| 高凊专区人人操| 激激五月| 亚州操操穴网| 国产无遮挡| 欧美图片色综合| 97香蕉人人乳| 久偷拍| 99色日| 好舒服视频| 欧美日韩亚洲电影| 日韩pv中文| 久久人妻丝袜一区二区三| 美女黄频a美女大全免费皮| 东京热男人的天堂精品| 亚洲国产ⅴ高清在线观看| 亚洲欧美日韩免费电影| 欧美十八禁导航成人| 一本色道久久天天射天天干| 中文字幕一二区二三区人妻专区| 国产绿奴视频在线观看| 精品国产丝袜一区二区三区乱码| 日韩性爱1级片视频| 一本一道vs波多野结衣| 久久婷婷色| 国产精品亚洲美女久久久久| 五月天婷婷基地| 97亚洲一区| 男人的天堂VA在线| 97 九色| 天天欧美97| 99999精品| 中文字幕三四区| 人妻精品视频一区二区三区| 蜜乳Av成人片网站| 欧美黄色片AAAAA| 91精品丝袜久久久久久| 青青11操操操操操操操操| 久久99手机免费视频| 久久久久久久六六| 欧美综合传媒| 一起草在线视频| 欧美日韩啪啪电影| 久久91精品国产9丨久久分亭| 国产精品探花在线| 3571色综合一区二区二区| 成人网欧美风情| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 人妻夜夜爽天天爽三区麻豆AV网站| 影音先锋乱伦资源| 日韩免费性爱视频在线观看| 俺去俺来也在线www| 欧美久久草熟女| 91视频综合在线| 激情文学88| 国产精品网址| 中文字幕精品一区二区精品| 97超碰资源网| 人妻少妇精品久久久久久久| 久久无码一区二区二三区性色| 一区二区三区欧美激情| 一个人在线看的黄色电影网站| 狠狠爱夜夜干| 人人妻人人玩人人澡人人爽| av在线一区二区三区| 色穴精品| 就去色综合| 思思视频免费看网站| 丁香六月婷婷综合| 精人妻无码一区二区三区伊人直播 | 美女露胸露尿口| 日本国产二线女色| 91露脸熟女专区| 静品嫩模一区二区| 天天日天天屌天天操| 综合网亚洲| 色九九综合| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 视频二区熟女人妻| 欧美在线永久天堂| 天天看综合网| 97碰碰日本乱偷人妻中文的| 少妇久久久久久| 色婷婷久久| 欧美96交| 老熟妇一区二区三区…| 五月天伊人| 国产一区二区二区按摩精品啪视频| 综合色啪| 亚洲天堂日本| 日韩高清黄片| 天堂国产AV| 日韩成人无码| 99热啪啪| 蜜桃臀av一区二区| 婷婷深爱五月| 白嫩91在线亚洲| 思思热免费在线视频| 白丝少妇一区二区| 久久免费99精品久久久久久| 超碰97资源中文字幕| 精品久久久久综合无码| 69精品人人人人| 人妻第一页| 午夜人妻精品综合在线| 日韩有码回春沙龙第一页| 黄片aaaaa一区| 亚洲涩图欧美| 久久精品国产亚洲AV无码电影| 1区2区3区中文字幕日韩| 少妇厨房愉情理伦片bd在线观看| 大香蕉伊人网WWWn0n| 日韩av在线精品观看| 天天影视色香色欲| 97碰| 亚洲综合影片| 日本操色导航| 啊啊啊啊啊啊啊啊啊啊在线观看| 亚洲免费在线探花| 成人片视频| A片 AV一级在线播放观看免费| 99天天超碰| 老熟女搡BBBB搡BBBB视频| 97 九色| 亚洲无码久久久久久久| 天天舔天天日天天射| 天天色天天干天天射| 亚洲AV色图一区| 91无码中出人妻视频| 中文字幕av亚洲精品| 午夜欧美神马久久久久| 在线观看AV片| 欧美色老汉| 国产四虎在线| 亚洲一区二区三区中文字幕| 精品少妇一区二区三区| 日本有码久久| 天天激情干| 91天天爽| 亚洲天堂女优在线| 多毛小伙内射老太婆| 久久久久成人网| 麻豆区99999| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 成人网站 免费观看| 欧洲亚洲人妻无码高清久久三区四区| 久久久一热在线播放| 国产女人视频三四五区| 欧美夜色| 992这里有精品| 都市久久精品激情亚洲| 欧成人在线| 九九久久久久久爱| 日韩黄色一区二区三区| 日本一级特级毛片视频| 人妻无码视频一区二区三区久久| 能在线播放的国产三级| 91丝袜在线播放| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 黑人白女精品一区| 视频在线观看青青99国产| 无码heyzo高清一区| 精品黑人一区二区| 国产主播福利| 综合亚州欧美| 久久超碰、| 夂久色| 日韩乱伦视频| 91精品微拍福利| 亚洲中文字幕av| 97一区二区三区视频| 久久精品欧美一区蜜桃| 欧美人妻一区| 强奸乱伦免费网站| 日韩电影中文字幕| 97AV在线免费观看| xxx亚洲午夜天堂| 一起草av| 自拍偷拍第26| 91欧美在线| 少妇贴图| 久久是精品| 亚洲综合校园春色| 午夜情侣自拍网站| 国产福利影视| 色操逼网| 久久精品操| 91久久堂| 成 人 影视 一区 二区 三区 四区| 狠狠色噜噜狠狠狠狠2018| 亚洲性高潮| 久久国产999| 久久同城AV| 老汉网| 欧美一二在线| 国产农村妇女精品一二区| 丁香婷婷啪啪| 亚洲精品成人激情在线| 国产精品色片一区二区| 人人操人人操人人操人人操人人操人人人11.CM | 超碰97国产欧美| 国产97综合| 日日摸日日碰| 欧美婷婷久久| 成人色女网| 蜜臀AV成人精品蜜臀AV久久| 欧美在线官网| 婷婷国产精品九区| 天天舔天天| 国产亚洲 中文欧美久久| 男人天堂一区二区| 99在线精品视频| 久久综合99| 久久久成人国产精品无码| 亚洲综合中文字幕有码| 日韩精品在线观看网站| 成人性爱电影一区二区| 91一起操| 亚洲AV无码国产成人| 综合久久中文字幕综合日韩精品| 日本中文字幕在线视频| 久操婷婷| 91 手机在线播放 绯色| 91无码中出人妻视频| 亚洲青青青视频在线| 欧美日韩222| 亚州综合色图| 啊啊啊啊啊舒服| 日日干夜夜欢| 四虎AV在线播放| 老司机福利青青草| 性暴力欧美猛交在线直播|