Today we are proud to announce the release of VisualGDB 5.4 Preview 1. This main highlight of this preview build is the new powerful and seamless way to develop ESP32 firmware using the ESP-IDF framework – the advanced ESP-IDF Project Subystem.
The new project subsystem is based on the same technology as the Advanced CMake Project subsystem – instead of re-creating the complex project structure in MSBuild, it directly maps the ESP-IDF project into Solution Explorer letting you use the regular Visual Studio/VisualGDB GUI to work with it. This brings numerous usability improvements compared to the previous ESP-IDF development workflow and I will give you an overview of them in this post.
Multiple ESP-IDF releases
The ESP-IDF framework is rapidly evolving and the new ESP-IDF project subsystem can fully handle that. You can now install several independent ESP-IDF checkouts in different subdirectories in your toolchain and VisualGDB will let you easily switch between them:
No BSP from us is required anymore – you can pick any ESP-IDF release (or even choose to clone the unstable master branch from github) and VisualGDB will let you easily create projects based on that IDF version.
Advanced Project Samples
The new project subsystem lets you easily clone the numerous project samples included in ESP-IDF, covering bluetooth, Wi-FI, and various on-chip peripherals. Simply pick it on the Project Sample page of the ESP-IDF Project Wizard and VisualGDB will create a project based on it.
ESP-IDF comes with a powerful configuration system based on KBuild that lets you tweak every aspect of your project. However, the terminal-based interface that comes with KBuild makes it challenging to find various settings. To make this task easier, we enabled VisualGDB to understand the KConfig files used by ESP-IDF and present you the related configuration choices in an easy searchable way:
Convenient GUI for Editing Settings
The usual way of configuring the ESP-IDF projects is by manually editing numerous project variables described in the ESP-IDF manual. VisualGDB makes this job easier using the approach used in the Advanced CMake Project Subsystem – simply open Visual Studio project properties for your project (or individual ESP-IDF components) and edit various settings as if it was a regular MSBuild project. VisualGDB will automatically translate those edits to changes in component.mk and Makefile:
As the OpenOCD-based FLASH programming can be sometimes less reliable than the bootloader-based programming via a COM port, we have added an option to program the FLASH memory using esptool.py even if you are using OpenOCD for JTAG debugging:
VisualGDB now also supports application-level tracing (ESP32 equivalent of Semihosting). Simply enable it on the Embedded Debug Tweaking page and VisualGDB will display the semihosting output just like when debugging ARM devices:
Memory Explorer Improvements
If you ever wondered whether the complex ESP-IDF linker scripts placed a function into RAM or FLASH, the new VisualGDB release will make it easier for you. Enabling the detailed view in the Embedded Memory Explorer will now automatically show the memory type for each function present in the final image:
The new VisualGDB 5.4 Preview 1 also includes redesigned versions of many frequently used windows and property pages. We have fully switched the Embedded and Linux project wizards to WPF, making them follow the VS color theme and look better on high-DPI displays. The embedded wizard now remembers frequently used devices (and even associates them with specific USB serial numbers of on-board JTAG interfaces), so you won’t need to select the same settings over and over again:We are also introducing the new expandable UI for various command templates and lists that eliminates extra mouse clicks and makes it easier to copy text between different parts of the settings:
Try it out
The new VisualGDB 5.4 Preview 1 is out there, so give it a try today. You can grab it on our regular download page. And don’t hesitate to share your feedback with us via the forum or the feedback form.