VS Code+espressif插件如何支持多个IDF版本并方便切换

需求来源

乐鑫官方一直在升级idf,目前笔者最常用的版本有2个,一个是idf4.2.3,一个是4.4.2。

其中,4.2版本开发产品试用最多,4.4版本未来会更有用。那么,目前就需要频繁切换开发。开发用VS Code加上espressif插件,还是挺方便的。经过一段时间的实验,发现espressif的VS Code插件,好像没有快速切换版本的功能,默认就是安装一个版本的idf。

其实,可以用2台电脑或者弄个虚拟机,但是不用想也知道麻烦,所以,还是花了点儿时间摸索一下,找到一个不完美但能用的方法,那就是修改插件的配置settings.json文件。

首先,当然,要把两个版本的idf都安装好,推荐下载乐鑫的离线安装包,一次性下载好、安装好。下载地址:

 

https://dl.espressif.com/dl/esp-idf/?idf=4.4

 

把两个版本安装在不同的目录,最好有版本好,方便标识。安装好后,可以按照以下方法,实现在VS Code中快速切换版本。

1)在espressif插件的设置界面,找到

Idf: Cmake Compiler Args
CMake 编译任务的参数
在settings.json中编辑

点在settings.json中编辑。

2)默认是一个版本的设置,拷贝一个,修改为另一个版本的,把不用的版本注释掉。这里的例子是注释掉idf4.2.3的样子。

// {
//     "idf.gitPath": "D:\\VM\\esp\\esp-tools-4.2.3\\tools\\idf-git\\2.34.2\\cmd\\git.exe",
//     "idf.espIdfPathWin": "d:\\VM\\esp\\esp-tools-4.2.3\\frameworks\\esp-idf-v4.2.3",
//     "idf.pythonBinPathWin": "d:\\VM\\esp\\esp-tools-4.2.3\\python_env\\idf4.2_py3.8_env\\Scripts\\python.exe",
//     "idf.toolsPathWin": "d:\\VM\\esp\\esp-tools-4.2.3",
//     "workbench.startupEditor": "none",
//     "redhat.telemetry.enabled": true,
//     "go.toolsManagement.autoUpdate": true,
//     "idf.gitPathWin": "D:/VM/esp/esp-tools-4.2.3/tools/idf-git/2.34.2/cmd/git.exe",
//     "idf.customExtraPaths": "D:\\VM\\esp\\esp-tools-4.2.3\\tools\\ccache\\3.7;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\cmake\\3.16.4\\bin;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\dfu-util\\0.9\\dfu-util-0.9-win64;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\esp32s2ulp-elf\\2.28.51-esp-20191205\\esp32s2ulp-elf-binutils\\bin;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\esp32ulp-elf\\2.28.51-esp-20191205\\esp32ulp-elf-binutils\\bin;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\idf-exe\\1.0.1;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\idf-git\\2.34.2\\mingw64\\bin;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\idf-python\\3.8.7\\Scripts;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\ninja\\1.10.0;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\openocd-esp32\\v0.11.0-esp32-20211220\\openocd-esp32\\bin;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\xtensa-esp32-elf\\esp-2020r3-8.4.0\\xtensa-esp32-elf\\bin;D:\\VM\\esp\\esp-tools-4.2.3\\tools\\xtensa-esp32s2-elf\\esp-2020r3-8.4.0\\xtensa-esp32s2-elf\\bin;",
//     "idf.customExtraVars": "{\"OPENOCD_SCRIPTS\":\"D:\\VM\\esp\\esp-tools-4.2.3\\tools\\openocd-esp32\\v0.11.0-esp32-20211220\\openocd-esp32\\share\\openocd\\scripts\",\"IDF_CCACHE_ENABLE\":\"1\"}",
//     "window.zoomLevel": 1,
//     "idf.cmakeCompilerArgs": [
//         "-G",
//         "Ninja",
//         "-DPYTHON_DEPS_CHECKED=1",
//         "-DESP_PLATFORM=1",
//         ".."
//     ]
// }

{
    "idf.gitPath": "D:\\VM\\esp\\esp-tools-4.4.2\\tools\\idf-git\\2.34.2\\cmd\\git.exe",
    "idf.espIdfPathWin": "d:\\VM\\esp\\esp-tools-4.4.2\\frameworks\\esp-idf-v4.4.2",
    "idf.pythonBinPathWin": "d:\\VM\\esp\\esp-tools-4.4.2\\python_env\\idf4.4_py3.8_env\\Scripts\\python.exe",
    "idf.toolsPathWin": "d:\\VM\\esp\\esp-tools-4.4.2",
    "workbench.startupEditor": "none",
    "redhat.telemetry.enabled": true,
    "go.toolsManagement.autoUpdate": true,
    "idf.gitPathWin": "D:/VM/esp/esp-tools-4.4.2/tools/idf-git/2.34.2/cmd/git.exe",
    "idf.customExtraPaths": "d:\\VM\\esp\\esp-tools-4.4.2\\tools\\xtensa-esp32-elf\\esp-2021r2-patch3-8.4.0\\xtensa-esp32-elf\\bin;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\xtensa-esp32s2-elf\\esp-2021r2-patch3-8.4.0\\xtensa-esp32s2-elf\\bin;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\xtensa-esp32s3-elf\\esp-2021r2-patch3-8.4.0\\xtensa-esp32s3-elf\\bin;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\riscv32-esp-elf\\esp-2021r2-patch3-8.4.0\\riscv32-esp-elf\\bin;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\esp32ulp-elf\\2.28.51-esp-20191205\\esp32ulp-elf-binutils\\bin;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\esp32s2ulp-elf\\2.28.51-esp-20191205\\esp32s2ulp-elf-binutils\\bin;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\cmake\\3.23.1\\bin;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\openocd-esp32\\v0.11.0-esp32-20220411\\openocd-esp32\\bin;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\ninja\\1.10.2;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\idf-exe\\1.0.3;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\ccache\\4.3\\ccache-4.3-windows-64;d:\\VM\\esp\\esp-tools-4.4.2\\tools\\dfu-util\\0.9\\dfu-util-0.9-win64;",
    "idf.customExtraVars": "{\"OPENOCD_SCRIPTS\":\"D:\\VM\\esp\\esp-tools-4.4.2\\tools\\openocd-esp32\\v0.11.0-esp32-20220411/openocd-esp32/share/openocd/scripts\",\"IDF_CCACHE_ENABLE\":\"1\"}",
    "window.zoomLevel": 1,
    "idf.cmakeCompilerArgs": [
        "-G",
        "Ninja",
        "-DPYTHON_DEPS_CHECKED=1",
        "-DESP_PLATFORM=1",
        ".."
    ]
}

3)如果需要切换,注释保存,重启VS Code就行了。

 

 


欢迎转载,本文地址: https://blog.prodrich.com/detail/67/

带着使命来到世上的你,给他人提供价值,才有价值