4.8 KiB
vscode 项目改造
### .vscode 目录 设置智能感知 ctrl+shift+P打开Command Palette,运行C/Cpp: Edit configurations... c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DUSE_HAL_DRIVER",
"_DSTM32F103xE",
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10/bin/arm-none-eabi-gcc.exe",
"cStandard": "c99",
"cppStandard": "c++11",
"intelliSenseMode": "windows-gcc-x64",
"configurationProvider": "ms-vscode.makefile-tools"
}
],
"version": 4
}
settings.json
launch.json 需要对应的 svd文件调试
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"cwd": "${workspaceFolder}",
"executable": "${workspaceRoot}/build/${workspaceFolderBasename}.elf",
"name": "Debug with ST-Link",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"servertype": "openocd",
"configFiles": ["${workspaceRoot}/openocd_script/openocd_stlink_stm32f4.cfg"],
"preLaunchTask": "build",
"armToolchainPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10/bin/",
"svdFile": "${workspaceRoot}/cmsis-svd/data/STMicro/STM32F407.svd"
},
{
"cwd": "${workspaceFolder}",
"executable": "${workspaceRoot}/build/${workspaceFolderBasename}.elf",
"name": "Debug with ST-Link Not Build",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"servertype": "openocd",
"configFiles": ["${workspaceRoot}/openocd_script/openocd_stlink_stm32f4.cfg"],
"preLaunchTask": "",
"armToolchainPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10/bin/",
"svdFile": "${workspaceRoot}/cmsis-svd/data/STMicro/STM32F407.svd"
},
{
"cwd": "${workspaceFolder}",
"executable": "${workspaceRoot}/build/${workspaceFolderBasename}.elf",
"name": "Attach ST-Link Not Build",
"request": "attach",
"type": "cortex-debug",
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"servertype": "openocd",
"configFiles": ["${workspaceRoot}/openocd_script/openocd_stlink_stm32f4.cfg"],
"preLaunchTask": "",
"armToolchainPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10/bin/",
"svdFile": "${workspaceRoot}/cmsis-svd/data/STMicro/STM32F407.svd"
}
]
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make",
"args": [
]
}
]
}
修改时钟 tick
Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c
makefile
下载
openocd -v 测试
添加文件
openocd_script/openocd_stlink_stm32f1.cfg
source [find interface/stlink.cfg]
source [find target/stm32f1x.cfg]
openocd_script/openocd_stlink_stm32f4.cfg
source [find interface/stlink.cfg]
source [find target/stm32f4x.cfg]
init
tpiu config internal - uart off 168000000
itm ports on
stlink.cfg 可改为 stlink-v2.cfg
makefile 添加 upload: @openocd -f openocd_script/openocd_stlink_stm32f1.cfg -c init -c halt -c "flash write_image erase $(BUILD_DIR)/$(TARGET).bin 0x08000000" -c reset -c shutdown
@openocd -f openocd_script/openocd_stlink_stm32f1.cfg -c init -c halt -c "flash write_image erase $(BUILD_DIR)/$(TARGET).bin 0x08000000" -c reset -c shutdown
@openocd -f openocd_script/openocd_stlink_stm32f1.cfg -c init -c halt -c "program $(BUILD_DIR)/$(TARGET).bin exit 0x08000000"
@openocd -f openocd_script/openocd_stlink_stm32f1.cfg -c init -c halt -c "program $(BUILD_DIR)/$(TARGET).elf verify reset exit"
调试
coretex debug插件 Cortex-Debug: Device Support Pack - STM32F1 Cortex-Debug: Device Support Pack - STM32F4
arm-none-eabi-gdb.exe: warning: Couldn't determine a path for the index cache directory.
添加系统变量 HOME C:\users\esea6
ST-LINK_gdbserver.exe 必须在系统路径下
LED点亮
通过 HAL_GPIO_TogglePin 直接操作 也可以 重写函数 LED_Toggle() 这样语义更清晰 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5); HAL_Delay()
FAQ
- 编译后,串口输出中文乱码 -fexec-charset=GBK -finput-charset=UTF-8