配置环境参考:
Docs
用cubemx配置工程文件,用VScode打开工程文件。
编译的时候会有如下报错:
vscode出现process_begin :CreateProcess failed 系统找不到指定文件
解决方案:在你的makefile中加上SHELL=cmd.exe就可以了
参考自:
https://tjut-liflab.feishu.cn/docx/J7EOdpa4uod97fxOEAacornxnPg
配置好的工程包含如下文件:
在.vscode文件夹下需要添加如下文件:
launch文件的配置如下:
{
// 启动调试的快捷键是F5
"version": "0.2.0",
"configurations": [
// 使用dap-link(如无线调试器时的参考配置)
{
"name": "DAPlink",
"cwd": "${workspaceRoot}",
"executable": "${workspaceRoot}\\build\\testvs.elf", // 要下载到调试器的文件,花括号中的是vscode两个预定义的参数
"request": "launch",
"type": "cortex-debug",
//使用J-link GDB Server时必须;其他GBD Server时可选(有可能帮助自动选择SVD文件)
//支持的设备见 https://www.segger.com/downloads/supported-devices.php
"device": "STM32F103RC",
//svd文件,有这个文件才能查看寄存器的值,每个单片机都不同。可以在以下地址找到 https://github.com/posborne/cmsis-svd
//该项目的根目录已经提供了C型开发板使用的外设svd文件
"svdFile": "STM32F103.svd",
"servertype": "openocd", //使用的GDB Server
"configFiles": [
"openocd_dap.cfg", // 配置文件已经在根目录提供,若要修改以此类推,openocd的路径下的share/scripts中有各种写好的配置文件
],
"runToEntryPoint": "main", // 调试时在main函数入口停下
"rtos": "FreeRTOS",
//"preLaunchTask": "build task",//先运行Build任务编译项目,取消注释即可使用
// dap若要使用log,请使用Jlink调试任务启动,之后再打开log任务
// 若想要在调试前编译并且打开log,可只使用log的prelaunch task并为log任务添加depends on依赖
}
]
}
c_cpp_properties.json文件配置如下:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "windows-gcc-arm",
"configurationProvider": "ms-vscode.makefile-tools"
}
],
"version": 4
}
task.json文件的配置如下:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 生成活动文件",
"command": "D:\\VScode\\MSYS2\\mingw64\\bin\\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
settings.json文件的配置如下:
{
"C_Cpp.default.compilerPath": "D:\\VScode\\MSYS2\\mingw64\\bin\\gcc.exe"
}
添加新的文件的时候需要在Makefile文件中添加源文件和头文件路径:格式为-I + 该文件的相对路径
stm32f1x.cfg文件可以从D:\VScode\OpenOCD\share\openocd\scripts\board中找到
openocd_dap.cfg中的内容;
#source [find interface/stlink.cfg]
source [find interface/cmsis-dap.cfg]
transport select swd
# increase working area to 64KB
set WORKAREASIZE 0x10000
source [find target/stm32f1x.cfg]
#reset_config srst_only
STM32F103.svd文件需要自行下载。
配置DAP调试的时候一直有一个报错,说是GDB sever打不开,根据报错提示说是在终端中找报错,发现工程找不到openocd_dap.cfg,于是发现工程中的这个文件没有放到文件根目录下,得已解决
总结:报错的时候一定耐心看报错信息
debug的时候要点开下图左下角的齿轮,按绿色的三角进行debug。
这个调试是针对C/C++代码的,不要用这个调试。
更换终端窗口可以debug的时候编译,并重新下载程序。
这个是debug下载程序的地方,这个是可以直接下载到单片机中的,断电或关闭调试模式仍然有效。
配置好的STM32F103RCT6点灯工程链接:
链接: https://pan.baidu.com/s/1Or_zm_NoZ-HuMrpTNkZ_RQ?pwd=3508 提取码: 3508 复制这段内容后打开百度网盘手机App,操作更方便哦
/
选择open with github destop拉取项目。
在vscode的debug界面下可以查看改变的代码与源代码作对比。
输入修改名称,点击提交即可上传。
注意分支不要选错。