配置环境参考:
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 0x10000source [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界面下可以查看改变的代码与源代码作对比。
输入修改名称,点击提交即可上传。
注意分支不要选错。