This extension provides many features to ease development of ESP-IDF Projects.
- Quick Configure ESP-IDF extension for first time user to help the user download, install and setup ESP-IDF and required tools within this Visual Studio Code extension.
- Quick prototyping by copying ESP-IDF examples with ESP-IDF: Show ESP-IDF Examples Projects.
- Syntax highlighting for KConfig and ESP-IDF Kconfig style syntax validation if
idf.useIDFKconfigStyle
is enabled. - GUI SDK Configuration editor to configure your ESP-IDF project (esp-idf menuconfig).
- Partition table editor
- NVS Partition editor
- Easily Build, Flash and Monitor your code for ESP32 and ESP32 S2 chips.
- OpenOCD server within Visual Studio Code.
- DEBUGGING with ESP-IDF Debug Adapter.
- Size analysis of binaries with ESP-IDF: Size analysis of the binaries.
- App tracing when using ESP-IDF Application Level Tracing Library like in ESP-IDF Application Level Tracing Example.
- Heap tracing
- System view tracing viewer
- Localization (English, Chinese, Spanish) of commands which you can also add a language contribution.
- Code Coverage for editor source highlighting and generate HTML reports.
- Search text editor's selected text in ESP-IDF documentation with ESP-IDF: Search in documentation... right click command or with its keyboard shortcut. Results will be shown in ESP-IDF Explorer Tab if found on ESP-IDF Documentation based on your current vscode language, ESP-IDF version in
idf.espIdfPath
(latest otherwise) andidf.adapterTargetName
. - ESP Rainmaker support
- Core dump and GdbStub postmortem mode.
- CMake Editor
- Support for WSL 2
ESP-IDF: Build your project is provided by this extension to build your project using CMake
and Ninja-build
as explained in ESP-IDF Build system using Cmake directly.
Click F5 to start debugging. To configure the debug behaviour, please review DEBUGGING.
NOTE For correct debug experience, first
build
your project, choose the right serial port,flash
your device and define the correctidf.customExtraPaths
paths andidf.customExtraVars
using SETUP.
On CMakeLists.txt file right click this extension provides a custom CMake Editor to fill our ESP-IDF Project and Component registration as specified in ESP-IDF Project CMakeLists.txt and ESP-IDF Component CMakeLists.txt files. You need to choose which kind of CMakeLists.txt file (project or component) to edit. There is 2 types of input, one is a simple string and another is an array of strings, such as Component Sources (SRCS). All inputs are described in the CMakeLists.txt Schema (${this_repository}/src/cmake/cmakeListsSchema.json).
ESP-IDF: Flash your project is provided by this extension to flash your project using the ESP-IDF esptool.py
as explained in ESP-IDF Build system Flash arguments. This command depends on the ${YOUR_PROJECT_DIR}/build/flasher_args.json
file generated by build and the idf.flashBaudRate
configuration setting.
When you open a Kconfig
, Kconfig.projbuild
or Kconfig.in
file we provide syntax highlighting. If idf.useIDFKconfigStyle
is enabled, we also provide ESP-IDF Kconfig style syntax validation such as indent validation and not closing blocks found (Example: menu-endmenu). Please review Kconfig Formatting Rules and Kconfig Language for further details about the ESP-IDF Kconfig formatting rules and Kconfig language in general.
We support log and heap tracing out of the box, which enables users to perform log/heap tracing with just few button clicks and present the results of tracing data with UI.
You can follow this quick step-by-step guide for heap tracing.
ESP-IDF: Monitor your device is provided by this extension to start idf.py monitor
terminal program in Visual Studio Code. Please take a look at the IDF Monitor documentation.
- ESP-IDF
>=v4.x
This plugin includes a GUI menuconfig that reads your current project folder's sdkconfig file (if available, otherwise it would take default values) and start the ESP-IDF JSON configuration server process (confserver.py in ${ESP-IDF-DIRECTORYPATH}/tools) that enables the user to redefine ESP-IDF project and board configuration.
When the user modify a parameter value, the value is send to the confserver.py
process, which return the new value and other values modified to GUI menuconfig and then update the values in the UI.
Values are not automatically saved to the sdkconfig file until you click save changes. You can cancel any changes and load the values from the sdkconfig file by clicking cancel changes. If you click set default the current sdkconfig file is replaced by a template sdkconfig file and then loaded into the GUI menuconfig rendered values.
The search functionality allows to find a parameter by description, i.e the name that appears in the sdkconfig file.
An IDF GUI Menuconfig log in Output (Menu View -> Output) is created to print all communications with ${idf.espIdfPath}\tools\confserver.py
. It can be be used to track any errors.
The ESP-IDF: Set Espressif device target allows the user to choose among Espressif different chips based on idf.py set-target.
We have provide a system view tracing viewer inside the vscode extension which will enable you to view the traces along with other relevant details.