.vscode文件夹中各个JSON脚本需要修改的地方

张开发
2026/4/16 11:46:57 15 分钟阅读

分享文章

.vscode文件夹中各个JSON脚本需要修改的地方
NOTE此篇文章由VSCodearm-none-eabi-gcc交叉编译Makefile构建OpenOCD基于STM32标准库的保姆级教程派生而来对.vscode文件中各个脚本需要修改的地方作补充说明。Ⅰ. tasks.json该json文件的主要作用使用XX名称去执行XX命令和XX参数。包含了程序编译、目标及过程文件清除、重新编译、CMSIS-DAP-Link / ST-Link / J-Link下载需要修改处① 修改args: [-f,interface/cmsis-dap.cfg,-f,target/stm32f4x.cfg,-c,program build/${workspaceRootFolderName}.elf verify reset, //将工程根目录名称作为可执行文件名称-c,reset run,-c,exit]的target/stm32f4x.cfg为你对应的MCU配置文件位于OpenOCD文件夹下。② 注意修改 J-Link json 块的interface/jlink-swd.cfg具体参考笔者的一篇博客OpenOCD之J-Link下载。………………ST-Link json块和J-Link json块以此类推去修改。//任务脚本{//ctrlshiftBtasks:[//编译{type:shell,// typeTask的类型分为shell和process两种// shell作为Shell命令运行// process作为一个进程运行label:build,command:make -j 8,args:[],problemMatcher:[$gcc],group:build},//清除{type:shell,label:clean,command:make clean,args:[],problemMatcher:[$gcc],group:build},//重编译{type:shell,label:rebuild,dependsOrder:sequence,dependsOn:[clean,build],problemMatcher:[$gcc],group:build},//cmsis-dap方式下载{type:shell,label:flash with cmsis-dap-link,command:openocd,args:[-f,interface/cmsis-dap.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface-f,target/stm32f4x.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target-c,// program build/F401CCU6_demo.elf verify reset exitprogram build/${workspaceRootFolderName}.elf verify reset,//将工程根目录名称作为可执行文件名称-c,reset run,// -c,// shutdown,-c,exit],/*commandargs相当于主命令子命令也就是openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c program build/F401CCU6_demo.elf verify reset exit的效果*/problemMatcher:[$gcc],group:build,dependsOn:[//每次执行下载任务前会先执行build任务这便是所谓的依赖build]},//stlink方式下载{type:shell,label:flash with ST-link,command:openocd,args:[-f,interface/stlink.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface-f,target/stm32f4x.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target-c,// program build/F401CCU6_demo.elf verify reset exitprogram build/${workspaceRootFolderName}.elf verify reset,//将工程根目录名称作为可执行文件名称-c,reset run,// -c,// shutdown,-c,exit],/*commandargs相当于主命令子命令也就是openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c program build/F401CCU6_demo.elf verify reset exit的效果*/problemMatcher:[$gcc],group:build,dependsOn:[//每次执行下载任务前会先执行build任务这便是所谓的依赖build]},//J-link方式下载{type:shell,label:flash with J-link,command:openocd,args:[-f,interface/jlink-swd.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface-f,target/stm32f4x.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target-c,// program build/F401CCU6_demo.elf verify reset exitprogram build/${workspaceRootFolderName}.elf verify reset,//将工程根目录名称作为可执行文件名称-c,reset run,// -c,// shutdown,-c,exit],/*commandargs相当于主命令子命令也就是openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c program build/F401CCU6_demo.elf verify reset exit的效果*/problemMatcher:[$gcc],group:build,dependsOn:[//每次执行下载任务前会先执行build任务这便是所谓的依赖build]}],version:2.0.0}Ⅱ. launch.json该json文件的主要作用用于调试MCU和选择什么样的调试器件。需要修改处 对于 CMSIS-DAP-Link 调试json块① 修改device: STM32F401CC为你所需要下载的MCU型号。② 修改configFiles: [interface/cmsis-dap.cfg,target/stm32f4x.cfg]的target/stm32f4x.cfg为你对应的MCU配置文件位于OpenOCD文件夹下。③ 修改svdFile: ./STM32F401.svd对应MCU型号的寄存器文件路径。④ 修改preLaunchTask: flash with stlink的预先任务名称flash with stlink对应在tasks.json文件的label中。⑤ 注意修改 J-Link json 块的interface/jlink-swd.cfg具体参考笔者的一篇博客OpenOCD之J-Link下载。………………ST-Link 调试json块和J-Link 调试json块以此类推去修改。//调试脚本{configurations:[{name:Debug with CMSIS-DAP-link,cwd:${workspaceRoot},// executable: ./build/F401CCU6_demo.elf,executable:./build/${workspaceRootFolderName}.elf,//将工程根目录名称作为可执行文件名称request:launch,type:cortex-debug,servertype:openocd,device:STM32F401CC,configFiles:[interface/cmsis-dap.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interfacetarget/stm32f4x.cfg//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target],svdFile:./STM32F401.svd,//选择寄存器文件liveWatch:{//变量窗口激活和设置每秒的采样次数enabled:true,samplesPerSecond:4},searchDir:[],runToEntryPoint:main,showDevDebugOutput:none,preLaunchTask:flash with cmsis-dap-link//每次调试之前会先下载程序},{name:Debug with ST-link,cwd:${workspaceRoot},// executable: ./build/F401CCU6_demo.elf,executable:./build/${workspaceRootFolderName}.elf,//将工程根目录名称作为可执行文件名称request:launch,type:cortex-debug,servertype:openocd,device:STM32F401CC,configFiles:[interface/stlink.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interfacetarget/stm32f4x.cfg//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target],svdFile:./STM32F401.svd,//选择寄存器文件liveWatch:{//变量窗口激活和设置每秒的采样次数enabled:true,samplesPerSecond:4},searchDir:[],runToEntryPoint:main,showDevDebugOutput:none,preLaunchTask:flash with stlink//每次调试之前会先下载程序},{name:Debug with J-link,cwd:${workspaceRoot},executable:./build/${workspaceRootFolderName}.elf,request:launch,type:cortex-debug,servertype:openocd,//要选择的GDB serverdevice:STM32F401CC,configFiles:[interface/jlink-swd.cfg,//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interfacetarget/stm32f4x.cfg//D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target],interface:swd,svdFile:./STM32F401.svd,liveWatch:{enabled:true,samplesPerSecond:4},runToEntryPoint:main,showDevDebugTimestamps:true,// preLaunchTask: build,showDevDebugOutput:none,preLaunchTask:flash with J-link//每次调试之前会先下载程序}],version:2.0.0}Ⅲ. settings.json该json文件的主要作用设置VSCode的一些快捷功能以及配合【Task Buttons插件】来显示编译、重编译、下载、调试等UI按钮。各项设置可参考笔者的另外一篇博客点击this。需要修改处 无需修改安装好Task Buttons插件和material-icon-theme插件即可开箱即用。//UI和功能设置脚本{// 字符集编码格式files.encoding:utf8,// 设置“严格提醒” enabled/disabled/enabledIfIncludesResolve// C_Cpp.errorSquiggles: disabled,// 启用文件自动保存files.autoSave:afterDelay,// 文件图标主题:material-icon-themeworkbench.iconTheme:material-icon-theme,// “现代深色”主题workbench.colorTheme:Default Dark Modern,//粘贴时格式化代码editor.formatOnPaste:true,//保存时格式化代码editor.formatOnSave:true,//设置字体的大小最小值能设置为6editor.fontSize:15,//设置字体的粗细editor.fontWeight:500,//设置字体的样式// terminal.integrated.fontFamily:Courier New,//使用Ctrl滚轮缩放编辑区的字体大小editor.mouseWheelZoom:true,//使用Ctrl滚轮缩放终端Terminal的字体大小terminal.integrated.mouseWheelZoom:true,//设置为false这样打开新的文件时不会自动关闭旧的文件workbench.editor.enablePreview:false,//据说可以减少VSCode的CPU和内存占用search.followSymlinks:false,security.workspace.trust.enabled:false,VsCodeTaskButtons.showCounter:true,VsCodeTaskButtons.tasks:[{label:$(tools) Build,task:build,tooltip:️ build},{label:$(notebook-delete-cell) Clean,task:clean,tooltip: clean},{label:$(notebook-delete-cell) $(tools) Re-bulid,//$(notebook-delete-cell) $(tools),task:rebuild,tooltip:️ rebuild// ️ rebuild},{label:$(zap) Download,// task: flash,tasks:[{label:⚓ CMSIS-dap-link,//icon copied from https://emojipedia.org/task:flash with cmsis-dap-link},{label:⤵️ ST-link,//icon copied from https://emojipedia.org/task:flash with ST-link},{label: J-link,//icon copied from https://emojipedia.org/task:flash with J-link}],tooltip:⚡ Download}],}Ⅳ. c_cpp_properties.json该json文件的主要作用用于配置函数关系跳转选择代码中的宏定义展开defines以及MCU的gcc编译路径compilerPath、MCU的编译选项参数compilerArgs或者说MCU的硬件参数。需要修改处① 修改name: STM32F401CCU6_ARM_GCC的名字根据工程文件和个人偏好修改。② 修改defines: [_DEBUG,UNICODE,_UNICODE,__GNUC__,USE_STDPERIPH_DRIVER,STM32F401xx]的USE_STDPERIPH_DRIVER,STM32F401xx根据不同MCU型号修改。③ 修改compilerArgs: [-mcpucortex-m4,-mthumb,-mfpufpv4-sp-d16,-mfloat-abihard]编译选项参数根据不同MCU型号修改。{configurations:[{name:STM32F401CCU6_ARM_GCC,includePath:[${workspaceFolder}/**],defines:[_DEBUG,UNICODE,_UNICODE,__GNUC__,// 解决编辑器中提示无法识别uint32_t, uint16_t, uint8_t的问题USE_STDPERIPH_DRIVER,STM32F401xx],/* 只要设置了系统环境变量在此处填写arm-none-eabi-gcc即可。 VSCode C/C IntelliSense插件会自动索引arm-none-eabi-gcc.exe所在路径故无需在此填写完整路径。 */compilerPath:arm-none-eabi-gcc,cStandard:c99,cppStandard:c17,intelliSenseMode:gcc-arm}],version:4}

更多文章