配置vscode用于STM32编译,Debug,github上传拉取

配置环境参考:

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界面下可以查看改变的代码与源代码作对比。

输入修改名称,点击提交即可上传。

注意分支不要选错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/599777.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无参数绕过RCE

一.什么是无参数 顾名思义,就是只使用函数,且函数不能带有参数,这里有种种限制:比如我们选择的函数必须能接受其括号内函数的返回值;使用的函数规定必须参数为空或者为一个参数等 无参数题目特征 if(; preg_replace…

数据结构与算法python版本之线性结构之递归Recursion

递归是一种解决问题的方法,其精髓在于:将问题分解为规模更小的相同问题,持续分解,直到问题规模小到可以用非常简单直接的方式来解决;递归的问题分解方式非常独特,其算法方面的明显特征是:在算法…

小核引导RTOS---RISC-V C906

文章目录 参考日志编译框架目标fip 启动流程fip文件组成BL2程序 总结思考备注 参考 参考1. How does FSBL load the FreeRTOS on the small core and execute it?参考2. Duo now supports big and little cores?Come and play!Milk-V Duo, start!参考3. 使用uboo…

SQLite 4.9的虚拟表机制(十四)

返回:SQLite—系列文章目录 上一篇:SQLite 4.9的 OS 接口或“VFS”(十三) 下一篇:SQLite—系列文章目录 1. 引言 虚拟表是向打开的 SQLite 数据库连接注册的对象。从SQL语句的角度来看, 虚拟表对象与任何其他…

C++:红黑树封装实现map、set

一、map、set的底层结构 前面对map、set等树形结构的关联式容器进行了简单的介绍,了解到map、set都是由红黑树封装实现的。红黑树是一种由二叉搜索树进行平衡处理后的平衡树,其查找、插入、删除等操作的时间复杂度为O(logn),详情请参考数据结…

nature| 肠道中藏着癌症免疫治疗的关键

在疾病发生过程中,人体共生菌发生了系统性的变化,起到了正向或负向作用,因此可以把共生菌看作人体活动的一个重要外部器官。 癌细胞通过释放特定信号,给免疫系统“踩刹车”,抑制免疫系统的识别和杀伤。这类免疫系统的…

【管理咨询宝藏49】AA银行上市发展提升分析报告

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏49】AA银行上市发展提升分析报告 【格式】PPT版本,可编辑 【关键词】战略规划、商业分析、管理咨询 【强烈推荐】这是一套市面上非常…

python 05文件的读写

import os f open("data/test.txt","w") #如果文件不存在就创建文件 f.write("11,12\n21,22\n") #写入两行 第一行是11,12 第二行 21,22 f.close() #打开文件后要关闭写入f open("data/test.txt","r…

vscode 安装vim插件配置ctrl + c/v功能

搜索Vim插件 插件介绍部分有提示操作 首先安装该插件,然后按照下述步骤设置ctrl相关的快捷键,以便于脱离im快捷键而愉快的敲代码。 1.在“设置”搜索框内搜索vim.handleKeys,选择 Edit in settings.json 2. 设置ctrl-c,ctrl-v等快捷键置为fa…

数据库系统概论(超详解!!!)第三节 关系数据库标准语言SQL(Ⅵ)

1.空值的处理 空值就是“不知道”或“不存在”或“无意义”的值。 一般有以下几种情况: 该属性应该有一个值,但目前不知道它的具体值 ;该属性不应该有值 ;由于某种原因不便于填写。 1.空值的产生 空值是一个很特殊的值&#x…

uniapp使用npm命令引入font-awesome图标库最新版本并解决APP和小程序不显示图标的问题

uniapp使用npm命令引入font-awesome图标库最新版本 图标库网址:https://fontawesome.com/search?qtools&or 命令行: 引入 npm i fortawesome/fontawesome-free 查看版本 npm list fortawesome在main.js文件中: import fortawesome/fo…

2024新版PHP在线客服系统多商户AI智能在线客服系统源码机器人自动回复即时通讯聊天系统源码PC+H5

搭建环境: 服务器 CPU 2核心 ↑ 运存 2G ↑ 宽带 5M ↑ 服务器操作系统 Linux Centos7.6-7.9 ↑ 运行环境: 宝塔面板 Nginx1.18- 1.22 PHP 7.1-7.3 MYSQL 5.6 -5.7 朵米客服系统是一款全功能的客户服务解决方案,提供多渠道支持…