VS Code开发STM32F4xx jlink接口swd模式

news/2024/9/24 22:11:36/
VS Code开发STM32F4xx   jlink接口swd模式(测试OK)

 下面的代码(已验证),只作为参考,不同情况的更改参照文章末尾链接

c_cpp_properties.json代码                        

(其中include路径和宏定义可以参照makefile添加) :

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE","USE_HAL_DRIVER","STM32F407xx"],"windowsSdkVersion": "10.0.22621.0","compilerPath": "D:/Program Files/STN32DevelopTools/bin/arm-none-eabi-gcc.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-gcc-arm","browse": {"path": ["${workspaceFolder}/**","${workspaceFolder}/Core/Inc","${workspaceFolder}/LWIP/App","${workspaceFolder}/LWIP/Target","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include","${workspaceFolder}/Middlewares/Third_Party/LwIP/system","${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc","${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy","${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/include","${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2","${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F","${workspaceFolder}/Drivers/BSP/Components/lan8742","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/netif/ppp","${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F4xx/Include","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/lwip","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/lwip/apps","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/lwip/priv","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/lwip/prot","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/netif","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/posix","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/posix/net","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/posix/sys","${workspaceFolder}/Middlewares/Third_Party/LwIP/src/include/compat/stdc","${workspaceFolder}/Middlewares/Third_Party/LwIP/system/arch","${workspaceFolder}/Drivers/CMSIS/Include","${workspaceFolder}/modbus/include","${workspaceFolder}/canfestival/inc","D:/Program Files/STN32DevelopTools/arm-none-eabi/include","D:/Program Files/STN32DevelopTools/arm-none-eabi/include/c++/10.3.1","D:/Program Files/STN32DevelopTools/arm-none-eabi/include/c++/10.3.1/arm-none-eabi/thumb/v7","D:/Program Files/STN32DevelopTools/arm-none-eabi/include/c++/10.3.1/backward","D:/Program Files/STN32DevelopTools/arm-none-eabi/include/sys","D:/Program Files/STN32DevelopTools/lib/gcc/arm-none-eabi/10.3.1/include","D:/Program Files/STN32DevelopTools/lib/gcc/arm-none-eabi/10.3.1/include-fixed"],"limitSymbolsToIncludedHeaders": true,"databaseFilename": ""}}],"version": 4
}
launch.json 代码: 
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${workspaceFolder}/build/${workspaceFolderName}.elf","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "D:/Program Files/STN32DevelopTools/bin/arm-none-eabi-gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]},]
}
settings.json代码: 
{"files.associations": {"user_mb_app.h": "c","main.h": "c","motor.h": "c","can.h": "c","canopen_app.h": "c"}
}

tasks.json 代码: 

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "编译项目","type": "shell","command": "make","args": ["-j4"],"problemMatcher": ["$armcc"]},{"label": "启动调试下载器","type": "shell","command": "openocd -f interface/jlink.cfg  -c 'transport select swd' -f target/stm32f4x.cfg",},{"label": "Build&Update","type": "shell","command": "openocd","args": ["-c","adapter driver jlink","-c","transport select swd","-f","D:/Program Files/STN32DevelopTools/OpenOCD-20231002-0.12.0/share/openocd/scripts/interface/jlink.cfg","-f","D:/Program Files/STN32DevelopTools/OpenOCD-20231002-0.12.0/share/openocd/scripts/target/stm32f4x.cfg","-c",//"D:/上海电气项目/contral_3.0_dmke_bms1.0-main/build/modbus_tcp_freertos.elf verify reset exit""program build/modbus_tcp_freertos.elf verify reset exit"],"problemMatcher": ["$gcc"]}]
}

 任务使用效果:Ctrl+Shift+P----点击任务:运行任务----可以选择运行任务,分别是:调试,烧录,编译 

选择编译项目

选择启动调试:  (需要电脑jink连接STM32)

 选择Build&Update:

参考链接1      参考链接2       参考链接3    参考链接3的b站视频


http://www.ppmy.cn/news/1437115.html

相关文章

h5键盘弹出收起时引起的页面变化

h5键盘弹出收起时引起的页面变化 键盘弹出时会导致窗口发生变化,置于底部的操作项会被顶上来,所以在键盘弹出的时候处理一下页面节点 通过监听页面窗口大小变化判断键盘状态键盘弹出时隐藏底部操作项在页面加载完成时执行即可 export function keyboa…

Day27:阻塞队列、Kafka入门、发送系统通知、显示系统

阻塞队列BlockingQueue BlockingQueue 解决线程通信的问题。阻塞方法:put、take。 生产者消费者模式 生产者:产生数据的线程。消费者:使用数据的线程。 (Thread1生产者,Thread2消费者) 实现类 ArrayBlockingQueueLinkedBlockingQueuePr…

npm/yarm常用命令

npm命令 标题npm作为嵌入在node中的功能,两个起到相辅相成作用,所以只要安装了node就可以使用npm! 查看nodejs版本: node -v 【或 node --version】 查看nodejs版本: npm -v 查看npm下载仓库地址: npm con…

CentOS上如何自定义开机启动服务

一:简单的例子 在CentOS7之后自定义开机启动服务,可以通过创建一个systemd服务单元文件来实现。以下是创建自定义服务并设置其开机启动的步骤: 1,编辑服务文件,并添加以下内容: [Unit] DescriptionMy cu…

一文读懂VR数字展览会,从沉浸式体验到市场竞争力的全方位提升

在数字化转型的浪潮中,VR技术正逐渐成为商业展览的新趋势。VR数字展览会通过创新的展示功能和互动体验,为参展商和观众带来前所未有的便利和效果。 一、VR展示功能的沉浸式体验 1、全方位沉浸式体验: VR技术能够创造一个全方位的三维展览环…

面向对象目录总结

【零】思维导图 【一】初识面向对象 Python 初识面向对象-CSDN博客 【二】面向对象-封装 Python 面向对象之封装和装饰器property_面向对象python封装property-CSDN博客 【三】面向对象-继承 Python 面向对象之继承和组合_面向对象 组合 继承-CSDN博客 【四】面向对象-多…

acwing算法提高之图论--拓扑排序

目录 1 介绍2 训练3 参考 1 介绍 本专题用来记录拓扑排序相关的题目。 求拓扑序列算法的关键步骤: 把入度为0的结点插入队列q。弹出队头t(将t记录下来),遍历队头t的下一个结点,将其入度减1。操作之后,如…

Python基础:【习题系列】函数

在Python中,函数内部用来返回值的关键字是什么?( A ) A.return B.output C.yield D.send 答案:A 难易程度:易 答案解析:return关键字用于从函数中返回值,结束函数的执行。 知识点:函数返回值;Python关键字 在Python函数定义中,用于接收任意数量参数的符号是什么…