stm32基础工程配置
生成stm32代码
通过cubemx 选择 stm32f407 调试功能关闭,设置外部时钟,设置串口1,选择makefile 工程,生产代码
屏蔽系统时钟配置
// SystemClock_Config
添加 发生代码
HAL_UART_Transmit(&huart1,"123\n",4, 100);
HAL_Delay(500);
编译
make
qemu调试脚本
qemu_run.sh
/home/lii/qemu/build/qemu-system-arm.exe --version
# qemu-system-arm -M
/home/lii/qemu/build/qemu-system-arm.exe \
-M netduinoplus2 \
-nographic \
-kernel /home/lii/stm32f407_qemu/build/stm32f407_qemu.bin \
qemu_debug.sh
/home/lii/qemu/build/qemu-system-arm.exe --version
# qemu-system-arm -M
/home/lii/qemu/build/qemu-system-arm.exe \
-M netduinoplus2 \
-nographic \
-kernel /home/lii/stm32f407_qemu/build/stm32f407_qemu.bin \
-gdb tcp::1234 \
-S
vscode 配置
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug @ linux",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}\\build\\stm32f407_qemu.elf",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"miDebuggerServerAddress": "localhost:1234",
"serverLaunchTimeout": 2000,
"targetArchitecture": "ARM",
"MIMode": "gdb",
"miDebuggerPath": "arm-none-eabi-gdb",
"customLaunchSetupCommands": [],
"launchCompleteCommand": "exec-run",
},
]
}
调试
运行 qemu 调试脚本
./qemu_debug.sh
vscode 进入调试模式