ESP-IDF 4.1 + Visual Studio Community 2019

antwdj
Posts: 7
Joined: Thu Jan 07, 2021 1:40 am

ESP-IDF 4.1 + Visual Studio Community 2019

Postby antwdj » Sat Jan 09, 2021 6:33 am

Hi, a few days ago I found that Visual Studio 2019 already has support for CMake and Ninja.

This is my installation steps for ESP-IDF 4.1 + Visual Studio Community 2019:

Note:
  • Ninja binary available only for Windows 64 bit
  • I use Visual Studio Community 2019 Version 16.8.3
Steps:
  1. Download the ESP-IDF Tools installer from https://dl.espressif.com/dl/esp-idf-tools-setup-2.3.exe
  2. Run the installer. I use the default installation folder. My computer did not have Python and Git, so the installer also download and run installers for Python and Git.
  3. Download Visual Studio Community 2019 Installer from Microsoft website. Open the installer. Check 'Desktop development with C++' and 'Linux development with C++' and make sure 'C++ CMake tools for Linux' and 'JSON Editor' are checked. If you want to use Visual Studio only for ESP-IDF and want to minimize download, you can unchecked everything in the Installation details except for 'C++ CMake tools for Linux' and 'JSON Editor'.
  4. Create a new project by copying the hello_world example folder (C:\Users\[your username here]\Desktop\esp-idf\examples\get-started\hello_world) to the place you want (the full directory path should not contain any spaces). I put mine in M:\VisualStudio so the full path is M:\VisualStudio\hello_world (adjust to your project's path).
  5. Right click your project folder in Windows Explorer and select 'Open with Visual Studio' or you can open Visual Studio 2019 from Start menu, choose File - Open - Folder or File - Open - CMake, and select your project folder. Wait until 'CMake Overview Pages' is shown.
  6. Click 'Open the CMake Settings Editor' in the 'CMake Overview Pages' or right click CMakeList.txt in the Solution Explorer and choose 'CMake Settings'
  7. Click 'Edit JSON'
  8. Replace all with this:

    Code: Select all

    {
      "configurations": [
        {
          "name": "ESP-IDF_4_1-Debug",
          "generator": "Ninja",
          "configurationType": "Debug",
          "inheritEnvironments": [ "linux_x64" ],
          "buildRoot": "${projectDir}\\build",
          "installRoot": "${projectDir}\\install",
          "cmakeCommandArgs": "--warn-uninitialized",
          "buildCommandArgs": "",
          "ctestCommandArgs": "",
          "environments": [
            {
              "IDF_GIT_DIR": "C:\\Program Files\\Git\\cmd",
              "IDF_PATH": "C:\\Users\\[username]\\Desktop\\esp-idf",
              "IDF_TOOLS_PATH": "C:\\Users\\[username]\\.espressif",
              "IDF_PYTHON_DIR": "C:\\Users\\[username]\\AppData\\Local\\Programs\\Python\\Python37",
              "IDF_PYTHON_ENV_PATH": "${env.IDF_TOOLS_PATH}\\python_env\\idf4.1_py3.7_env",
              "OPENOCD_SCRIPTS": "${env.IDF_TOOLS_PATH}\\tools\\openocd-esp32\\v0.10.0-esp32-20191114\\openocd-esp32\\share\\openocd\\scripts",
              "PATH": "${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32-elf\\esp-2020r2-8.2.0\\xtensa-esp32-elf\\bin;${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32s2-elf\\esp-2020r2-8.2.0\\xtensa-esp32s2-elf\\bin;${env.IDF_TOOLS_PATH}\\tools\\esp32ulp-elf\\2.28.51-esp-20191205\\esp32ulp-elf-binutils\\bin;${env.IDF_TOOLS_PATH}\\tools\\esp32s2ulp-elf\\2.28.51-esp-20191205\\esp32s2ulp-elf-binutils\\bin;${env.IDF_TOOLS_PATH}\\tools\\ninja\\1.9.0\\;${env.IDF_TOOLS_PATH}\\tools\\idf-exe\\1.0.1\\;${env.IDF_TOOLS_PATH}\\tools\\ccache\\3.7\\;${env.IDF_TOOLS_PATH}\\python_env\\idf4.1_py3.7_env\\Scripts;${env.IDF_PATH}\\tools;${env.IDF_PATH};${env.PATH}",
              "INCLUDE": "${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32-elf\\esp-2020r2-8.2.0\\xtensa-esp32-elf\\xtensa-esp32-elf\\include;${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32s2-elf\\esp-2020r2-8.2.0\\xtensa-esp32s2-elf\\xtensa-esp32s2-elf\\include;${env.IDF_PATH}\\components;${env.INCLUDE}",
              "FLASH_COM_PORT": "COM4",
              "environment": "linux_x64"
            }
          ],
          "intelliSenseMode": "windows-clang-x64",
          "variables": [
            {
              "name": "IDF_TARGET",
              "value": "esp32",
              "type": "STRING"
            },
            {
              "name": "CMAKE_MAKE_PROGRAM",
              "value": "${env.IDF_TOOLS_PATH}\\tools\\ninja\\1.9.0\\ninja.exe",
              "type": "FILEPATH"
            },
            {
              "name": "CCACHE_ENABLE",
              "value": "1",
              "type": "STRING"
            },
            {
              "name": "ESP_PLATFORM",
              "value": "1",
              "type": "STRING"
            }
          ]
        }
      ]
    }
    
    Replace [username] in the IDF_PATH, IDF_TOOLS_PATH, and IDF_PYTHON_DIR line with your username. Change the value for FLASH_COM_PORT to the serial port of your ESP32. Save the file.
  9. Right click any file in the Solution Explorer and choose Configure Tasks. Replace all with this:

    Code: Select all

    {
      "version": "0.2.1",
      "tasks": [
        {
          "taskLabel": "menuconfig",
          "appliesTo": "*",
          "type": "launch",
          "inheritEnvironments": [
            "linux_x64"
          ],
          "command": "idf_py_menuconfig.cmd"
        },
        {
          "taskLabel": "flash",
          "appliesTo": "*",
          "type": "launch",
          "inheritEnvironments": [
            "linux_x64"
          ],
          "command": "idf.py",
          "args": [
            "-p ${env.FLASH_COM_PORT} flash"
          ]
        },
        {
          "taskLabel": "flash monitor",
          "appliesTo": "*",
          "type": "launch",
          "inheritEnvironments": [
            "linux_x64"
          ],
          "command": "idf_py_flash_monitor.cmd",
          "args": [
            "${env.FLASH_COM_PORT}"
          ]
        },
        {
          "taskLabel": "monitor",
          "appliesTo": "*",
          "type": "launch",
          "inheritEnvironments": [
            "linux_x64"
          ],
          "command": "idf_py_monitor.cmd"
        }
      ]
    }
    
    Save the file.
  10. Create a text file named idf_py_menuconfig.cmd in C:\Users\[username]\Desktop\esp-idf\tools. Open with a text editor and type:

    Code: Select all

    start idf.py menuconfig
    
    Save the file
  11. Create a text file named idf_py_monitor.cmd in C:\Users\[username]\Desktop\esp-idf\tools. Open with a text editor and type:

    Code: Select all

    start idf.py monitor
    
    Save the file
  12. Create a text file named idf_py_flash_monitor.cmd in C:\Users\[username]\Desktop\esp-idf\tools. Open with a text editor and type:

    Code: Select all

    start idf.py -p %1 flash monitor
    
    Save the file
  13. In Visual Studio, right click any file in the Solution Explorer and select 'Run menuconfig'. Change the settings you want.
  14. Save and exit
  15. Select Project - 'Generate Cache for [your project folder name]' from the Visual Studio menu to regenerate CMake cache. I suggest you always regenerate the CMake cache when you are done with menuconfig.
  16. Build using the regular Visual Studio build menu (Build - Build All)
  17. To flash the firmware to ESP32, right click any file in the Solution Explorer and choose 'Run flash'. Choose 'Run monitor' to open monitor. Choose 'Run flash monitor' to flash and open monitor.
  18. When the monitor is opened, the build menu will be disabled. So close the monitor before build again.
  19. In the CMakeSetting.json, I set the build folder not in the 'out' folder. If you follow this setting, you can delete the 'out' folder if it was created by Visual Studio.
If your settings does not become effective or you got strange error, try:
  • Delete and generate CMake cache again. Sometimes the CMake cache is not updating. Just be patient with this.
  • Or if you want to force it, close Visual Studio, then delete the build folder and everything in the .vs folder except tasks.vs.json.
The intellisensemode that I use is windows-clang-64.
  • If you open C file, the Intellisense does not show undefined method or variable.
  • If you open Cpp file, the Intellisense show undefined method or variable.
Reference:
ESP-IDF 4.1 Get Started guide (https://docs.espressif.com/projects/esp ... index.html)
Using MinGW and Cygwin with Visual C++ and Open Folder (https://devblogs.microsoft.com/cppblog/ ... en-folder/)
Open Folder support for C++ build systems in Visual Studio (https://docs.microsoft.com/en-us/cpp/bu ... w=msvc-160)
Customize CMake build settings (https://docs.microsoft.com/en-us/cpp/bu ... w=msvc-160)
CMakeSettings.json schema reference (https://docs.microsoft.com/en-us/cpp/bu ... w=msvc-160)

vanBassum
Posts: 68
Joined: Sun Jan 17, 2021 11:59 am

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby vanBassum » Mon Jan 25, 2021 5:22 pm

Hello,
I've got this working on IDF 4.0, although I get some reference errors.
This is a Visual Studio thing, because the project compiles when right click and choose flash monitor.
Just posting the first few, you get the idea.
Any ideas?

Code: Select all

Severity	Code	Description	Project	File	Line	Suppression State
Error (active)	E1696	cannot open source file "limits.h"	libmain.a (esp-idf\main\libmain.a) - ESP-IDF_4_0-Debug	C:\ProgramData\esp-idf\components\freertos\include\freertos\task.h	78	
Error (active)	E1696	cannot open source file "stdint.h"	libmain.a (esp-idf\main\libmain.a) - ESP-IDF_4_0-Debug	C:\ProgramData\esp-idf\components\esp32\include\esp_intr_alloc.h	18	
Error (active)	E1696	cannot open source file "stdbool.h"	libmain.a (esp-idf\main\libmain.a) - ESP-IDF_4_0-Debug	C:\ProgramData\esp-idf\components\esp32\include\esp_intr_alloc.h	19	
Error (active)	E1696	cannot open source file "stdint.h"	libmain.a (esp-idf\main\libmain.a) - ESP-IDF_4_0-Debug	C:\ProgramData\esp-idf\components\esp_common\include\esp_err.h	16	
Error (active)	E1696	cannot open source file "stdio.h"	libmain.a (esp-idf\main\libmain.a) - ESP-IDF_4_0-Debug	C:\ProgramData\esp-idf\components\esp_common\include\esp_err.h	17	

vanBassum
Posts: 68
Joined: Sun Jan 17, 2021 11:59 am

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby vanBassum » Mon Jan 25, 2021 7:55 pm

It seems that references to components are also not working

OllieK
Posts: 58
Joined: Mon Jan 18, 2016 8:08 am
Location: USA, PA
Contact:

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby OllieK » Tue Jan 26, 2021 1:54 am

Here is a reference for a simplified and faster method to get ESP-IDF 4.1 to work with VSC.

https://www.esp32.com/viewtopic.php?f=4 ... =10#p70518

Ignore the reference to problems related to Espressif IDF 0.6.0. Those are now fixed in 0.6.1.

antwdj
Posts: 7
Joined: Thu Jan 07, 2021 1:40 am

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby antwdj » Tue Jan 26, 2021 9:00 am

I think it fails to found the include files because the path for ESP-IDF 4.0 is different. Try check the paths in the environment section in CMakeSettings.json in step 8. The easy way to check this is to open "ESP-IDF Command Prompt" (double click shortcut on the Desktop). Then type "set" and ENTER. All the paths will be displayed. This is the way I fill those paths in the environment section in CMakeSettings.json. If you want, you can choose not to use ${env.IDF_TOOLS_PATH} variable and just copy the path from the "ESP-IDF Command Prompt".

vanBassum
Posts: 68
Joined: Sun Jan 17, 2021 11:59 am

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby vanBassum » Tue Jan 26, 2021 3:15 pm

OllieK wrote:
Tue Jan 26, 2021 1:54 am
Here is a reference for a simplified and faster method to get ESP-IDF 4.1 to work with VSC.

https://www.esp32.com/viewtopic.php?f=4 ... =10#p70518

Ignore the reference to problems related to Espressif IDF 0.6.0. Those are now fixed in 0.6.1.
This post is about Visual Studio Code, I am interested in Visual Studio. So far I have used, eclipse, VSC and visualgdb. All of them have their pro's and cons for me.

For the pads, I have changed some things in the json in order to make it build. I didn't know about the "set" function. I shall try this later.
EDIT: Just checked, the paths are identical.

BTW, if debugging is possible, that would be awesome.

antwdj
Posts: 7
Joined: Thu Jan 07, 2021 1:40 am

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby antwdj » Tue Jan 26, 2021 11:37 pm

Could you copy paste the result from the "set" command here? And also the content of your CMakeSettings.json.

antwdj
Posts: 7
Joined: Thu Jan 07, 2021 1:40 am

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby antwdj » Wed Jan 27, 2021 3:58 am

The problem is that Visual Studio CMake can not find the header files. It will search for them in the path specified by the INCLUDE environment variable (see in the CMakeSettings.json). I just tried to run the "set" command again and there was no INCLUDE environment variable there. Sorry I forgot.

For ESP-IDF 4.1, I specify this for the INCLUDE environment variable (in step 8):
"INCLUDE": "${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32-elf\\esp-2020r2-8.2.0\\xtensa-esp32-elf\\xtensa-esp32-elf\\include;${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32s2-elf\\esp-2020r2-8.2.0\\xtensa-esp32s2-elf\\xtensa-esp32s2-elf\\include;${env.IDF_PATH}\\components;${env.INCLUDE}",

From the error that you post, Visual Studio CMake can not found the stdint.h, stdio.h, etc files. These files locations for ESP-IDF 4.1 are in the xtensa-esp32-elf and xtensa-esp32s2-elf (depending on the target ESP32). I just installed ESP-IDF 4.0.2 and there is only the xtensa-esp32-elf folder. Inside that folder is the esp-2020r3-8.4.0 folder. This is different from the ESP-IDF 4.1 which is esp-2020r2-8.2.0. So you have to change this to the folder for your ESP-IDF version. For ESP-IDF 4.0.2 the INCLUDE environment variable should be like this:

"INCLUDE": "${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32-elf\\esp-2020r3-8.4.0\\xtensa-esp32-elf\\xtensa-esp32-elf\\include;${env.IDF_PATH}\\components;${env.INCLUDE}",

OllieK
Posts: 58
Joined: Mon Jan 18, 2016 8:08 am
Location: USA, PA
Contact:

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby OllieK » Wed Jan 27, 2021 6:15 am

@vanBassum

The main motivation for me to record the simplified installation steps was to demonstrate how to get the ESP IDF debugger to work with VSC.

vanBassum
Posts: 68
Joined: Sun Jan 17, 2021 11:59 am

Re: ESP-IDF 4.1 + Visual Studio Community 2019

Postby vanBassum » Thu Jan 28, 2021 9:33 am

Aha oke, I tried changing the include folder to match the one on my disk. Although its still giving errors.
I've included the SET command and the JSON.

Code: Select all

C:\Workspace\Smarthome>idf.py set
Checking Python dependencies...
Python requirements from C:\ProgramData\esp-idf\requirements.txt are satisfied.
Usage: idf.py [OPTIONS] COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]...
Try 'idf.py --help' for help.

Error: No such command 'set'.

C:\Workspace\Smarthome>set
ALLUSERSPROFILE=C:\ProgramData
ANS_OLD_ATTACH=1
APPDATA=C:\Users\Bas\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=DESKTOP-L04IGF3
ComSpec=C:\Windows\system32\cmd.exe
DriverData=C:\Windows\System32\Drivers\DriverData
FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
FPS_BROWSER_USER_PROFILE_STRING=Default
HOMEDRIVE=C:
HOMEPATH=\Users\Bas
IDF_CCACHE_ENABLE=1
IDF_GIT_DIR=C:\Program Files\Git\cmd\
IDF_PATH=C:\ProgramData\esp-idf
IDF_PYTHON_DIR=C:\Users\Bas\AppData\Local\Programs\Python\Python37\
IDF_PYTHON_ENV_PATH=C:\programdata\.espressif\python_env\idf4.0_py3.7_env
IDF_TOOLS_PATH=C:\programdata\.espressif
KEYSHOT_EXTERNAL_LICENSE_FOLDER=C:\Program Files\DesignSpark\DesignSpark Mechanical 5.0\
LOCALAPPDATA=C:\Users\Bas\AppData\Local
LOGONSERVER=\\DESKTOP-L04IGF3
NUMBER_OF_PROCESSORS=8
OneDrive=C:\Users\Bas\OneDrive
OPENOCD_SCRIPTS=C:\programdata\.espressif\tools\openocd-esp32\v0.10.0-esp32-20200709\openocd-esp32\share\openocd\scripts
OS=Windows_NT
Path=C:\programdata\.espressif\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin;C:\programdata\.espressif\tools\esp32ulp-elf\2.28.51.20170517\esp32ulp-elf-binutils\bin;C:\programdata\.espressif\tools\cmake\3.13.4\bin;C:\programdata\.espressif\tools\openocd-esp32\v0.10.0-esp32-20200709\openocd-esp32\bin;C:\programdata\.espressif\tools\mconf\v4.6.0.0-idf-20190628\;C:\programdata\.espressif\tools\ninja\1.9.0\;C:\programdata\.espressif\tools\idf-exe\1.0.1\;C:\programdata\.espressif\tools\ccache\3.7\;C:\programdata\.espressif\python_env\idf4.0_py3.7_env\Scripts;C:\ProgramData\esp-idf\tools;C:\Users\Bas\AppData\Local\Programs\Python\Python37\;C:\Program Files\Git\cmd\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\PuTTY\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin\;C:\Program Files\IVI Foundation\VISA\Win64\Bin\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Program Files\dotnet\;C:\Users\Bas\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\Bas\AppData\Local\Programs\Python\Python37\;C:\Users\Bas\AppData\Local\Microsoft\WindowsApps;C:\Users\Bas\.dotnet\tools
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=5e03
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\Bas\AppData\Local\Temp
TMP=C:\Users\Bas\AppData\Local\Temp
USERDOMAIN=DESKTOP-L04IGF3
USERDOMAIN_ROAMINGPROFILE=DESKTOP-L04IGF3
USERNAME=Bas
USERPROFILE=C:\Users\Bas
VISUALGDB_DIR=C:\Program Files (x86)\Sysprogs\VisualGDB\
VXIPNPPATH=C:\Program Files (x86)\IVI Foundation\VISA\
VXIPNPPATH64=C:\Program Files\IVI Foundation\VISA\
windir=C:\Windows

Code: Select all

{
    "configurations": [
        {
            "name": "ESP-IDF_4_0-Debug",
            "generator": "Ninja",
            "configurationType": "Debug",
            "inheritEnvironments": [ "linux_x64" ],
            "buildRoot": "${projectDir}\\build",
            "installRoot": "${projectDir}\\install",
            "cmakeCommandArgs": "--warn-uninitialized",
            "buildCommandArgs": "",
            "ctestCommandArgs": "",
            "environments": [
                {
                    "IDF_GIT_DIR": "C:\\Program Files\\Git\\cmd",
                    "IDF_PATH": "C:\\ProgramData\\esp-idf",
                    "IDF_TOOLS_PATH": "C:\\ProgramData\\.espressif",
                    "IDF_PYTHON_DIR": "C:\\Users\\bas\\AppData\\Local\\Programs\\Python\\Python37",
                    "IDF_PYTHON_ENV_PATH": "${env.IDF_TOOLS_PATH}\\python_env\\idf4.0_py3.7_env",
                    "OPENOCD_SCRIPTS": "${env.IDF_TOOLS_PATH}\\tools\\openocd-esp32\\v0.10.0-esp32-20191114\\openocd-esp32\\share\\openocd\\scripts",
                    "PATH": "${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32-elf\\esp-2020r3-8.4.0\\xtensa-esp32-elf\\bin;${env.IDF_TOOLS_PATH}\\tools\\esp32ulp-elf\\2.28.51.20170517\\esp32ulp-elf-binutils\\bin;${env.IDF_TOOLS_PATH}\\tools\\cmake\\3.13.4\\bin;${env.IDF_TOOLS_PATH}\\tools\\openocd-esp32\\v0.10.0-esp32-20200709\\openocd-esp32\\bin;${env.IDF_TOOLS_PATH}\\tools\\mconf\\v4.6.0.0-idf-20190628\\;${env.IDF_TOOLS_PATH}\\tools\\ninja\\1.9.0\\;${env.IDF_TOOLS_PATH}\\tools\\idf-exe\\1.0.1\\;${env.IDF_TOOLS_PATH}\\tools\\ccache\\3.7\\;${env.IDF_TOOLS_PATH}\\python_env\\idf4.0_py3.7_env\\Scripts;${env.IDF_PATH}\\tools;${env.IDF_PATH};${env.PATH}",
                    "INCLUDE": "${env.IDF_TOOLS_PATH}\\tools\\xtensa-esp32-elf\\esp-2020r3-8.4.0\\xtensa-esp32-elf\\xtensa-esp32-elf\\include;${env.IDF_PATH}\\components;${env.INCLUDE}",
                    "FLASH_COM_PORT": "COM4",
                    "environment": "linux_x64"
                }
            ],
            "intelliSenseMode": "windows-clang-x64",
            "variables": [
                {
                    "name": "IDF_TARGET",
                    "value": "esp32",
                    "type": "STRING"
                },
                {
                    "name": "CMAKE_MAKE_PROGRAM",
                    "value": "${env.IDF_TOOLS_PATH}\\tools\\ninja\\1.9.0\\ninja.exe",
                    "type": "FILEPATH"
                },
                {
                    "name": "CCACHE_ENABLE",
                    "value": "1",
                    "type": "STRING"
                },
                {
                    "name": "ESP_PLATFORM",
                    "value": "1",
                    "type": "STRING"
                }
            ]
        }
    ]
}

Who is online

Users browsing this forum: No registered users and 21 guests