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

部署运行你感兴趣的模型镜像

NOTE:
此篇文章由VSCode+arm-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块以此类推去修改。

//任务脚本
{
    //ctrl+shift+B
    "tasks": [
        //编译
        {
            "type": "shell",
            // type:Task的类型,分为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 exit"
                "program build/${workspaceRootFolderName}.elf verify reset", //将工程根目录名称作为可执行文件名称
                "-c",
                "reset run",
                // "-c",
                // "shutdown",
                "-c",
                "exit"
            ], /*command+args相当于主命令+子命令,也就是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 exit"
                "program build/${workspaceRootFolderName}.elf verify reset", //将工程根目录名称作为可执行文件名称
                "-c",
                "reset run",
                // "-c",
                // "shutdown",
                "-c",
                "exit"
            ], /*command+args相当于主命令+子命令,也就是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 exit"
                "program build/${workspaceRootFolderName}.elf verify reset", //将工程根目录名称作为可执行文件名称
                "-c",
                "reset run",
                // "-c",
                // "shutdown",
                "-c",
                "exit"
            ], /*command+args相当于主命令+子命令,也就是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\interface
                "target/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\interface
                "target/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 server
            "device": "STM32F401CC",
            "configFiles": [
                "interface/jlink-swd.cfg", //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface
                "target/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-theme"
    "workbench.iconTheme": "material-icon-theme",
    // “现代深色”主题
    "workbench.colorTheme": "Default Dark Modern",
    //粘贴时格式化代码
    "editor.formatOnPaste": true,
    //保存时格式化代码
    "editor.formatOnSave": true,
    //设置字体的大小,最小值能设置为6
    "editor.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": [
"-mcpu=cortex-m4",
"-mthumb",
"-mfpu=fpv4-sp-d16",
"-mfloat-abi=hard"
]
编译选项参数,根据不同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",
            "compilerArgs": [
                "-mcpu=cortex-m4",
                "-mthumb",
                "-mfpu=fpv4-sp-d16",
                "-mfloat-abi=hard"
            ],
            "cStandard": "c99",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-arm"
        }
    ],
    "version": 4
}

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值