Forum Replies Created
Thanks for letting us know and good to know it works.July 28, 2021 at 08:10 in reply to: IntelliSens problems with embedded semihosting and profiler framework #31015
This might be related to a recent update to CMake that changed the format used to report command lines. Please try updating to VisualGDB 5.6 Beta 4.July 27, 2021 at 10:25 in reply to: How to debug remotely with J-link, Visual Studio, VisualGDB? #31011
Unfortunately, it’s hard to suggest anything specific based on this description.
Please provide the steps we could follow on our side to reproduce the problem per our problem reporting guidelines and we will try to investigate this further.July 26, 2021 at 16:00 in reply to: How to debug remotely with J-link, Visual Studio, VisualGDB? #31005
It’s hard to say why the connection between 2 J-Link tools would not always work. Please try reproducing the problem outside VisualGDB by launching JLinkGDBServer manually with the command-line arguments shown in the Advanced view. If the problem persists, please contact Segger support for further help.
If running JLinkGDBServer manually works, please let us know more details (e.g. successful vs. failing logs and the exact command line used) and we will help you configure VisualGDB to replicate that setup.
Normally, the paths should be remembered. If it doesn’t happen, please try installing the latest VisualGDB 5.6 Beta (you would need to renew your support here), make sure your can reproduce the problem from scratch, and share the steps we could follow on our side to reproduce the problem per our problem reporting guidelines.
This could be something specific to ESP-IDF itself. E.g. the USB is not enabled for this project, hence the setting gets reverted back. Please try changing the same setting via ESP-IDF menuconfig (you can launch it via the context menu in Solution Explorer).
If menuconfig works as expected, please follow the steps below to narrow down the problem
July 23, 2021 at 10:37 in reply to: How to debug remotely with J-link, Visual Studio, VisualGDB? #30987
- Make a backup of the <project directory>\sdkconfig file before changing the setting.
- Change the setting via VisualGDB Project Properties
- Restore the backed up file
- Change the same setting with menuconfig
- Send us the 3 versions of the sdkconfig file (before, after editing with VisualGDB, after editing with menuconfig) along with the test project name, the ESP-IDF version and the device type, and we will try to reproduce the issue on our side.
VisualGDB uses the J-Link Software to communicate to Segger J-Link. You can configure it to connect to a remote J-Link by selecting “Connection: TCP/IP” in VisualGDB Project Properties -> Debug Settings. This will pass the “-select IP” argument to JLinkGDBServerCL.exe (expand the Advanced Settings view to preview the command line).
You can find more details about remote mode of the Segger J-Link GDB Server in the J-Link documentation.
You can use the same techniques that would work for any other IDE or a directly built project. VisualGDB does not change anything from that perspective.
When you install a new ESP-ADF instance with VisualGDB, it simply clones the Espressif’s ESP-ADF repository and checks out the selected tag/branch. The v2.3 tag of ESP-ADF still references ESP-IDF v3.3.2, so that’s the version that gets installed when you use VisualGDB (or any other tool) to clone it from Github. ESP-IDF 3.x still requires the old toolchain.
If you are confident that ESP-ADF can work with the newer ESP-IDF, you can replace it manually using the git commands and use it with a newer toolchain, however this is something to do at your own risk. We generally try to provide out-of-the-box support for the SDK versions available as official releases, but if you want to try other combinations, please expect to do some research and troubleshooting, as they may need some adjustment.
If you have managed to successfully use VS code to install a different combination of ESP-IDF and ESP-ADF, please share the complete steps you followed to get this setup working (including the screenshots of each step) and we can help you configure VisualGDB to replicate the same results. Please make sure you follow our problem reporting guidelines, as we are not able to provide any help unless we have the specific steps we can analyze/follow on our side.
VisualGDB does not manage it directly. It simply launches the open-source OpenOCD tool that handles the low-level communication with the target.
You might be able to configure OpenOCD to change the reset behavior by editing the OpenOCD script files, however this is something to do at your own risk and it may require extensive research into OpenOCD internals.
If you are looking for an easy out-of-the-box solution, please consider using Segger J-Link instead.
This is somewhat tricky due to the way encoding is handled on the VisualGDB side. We might be able to look into supporting it during the next major VisualGDB release, however it would take more than several months.
As a workaround, we would advise creating a wrapper for the external tool that would run the original tool, and then change the encoding of the generated file to UTF-8. As it will be done automatically each time after the tool is invoked, it won’t result in any extra changes in git. From the source control point of view, it will look as if the tool was generating UTF-8 files in the first place.
This looks like a device connectivity issue rather than something VisualGDB-specific. Our best advice would be to try using Segger J-Link. It comes with its own fully supported replacement for OpenOCD, that generally works better in many edge cases. VisualGDB supports both OpenOCD and J-Link software, so all the features you previously used will continue working the same way.
Yes, please see the following tutorial: https://visualgdb.com/tutorials/arm/openocd/build/
We have just received the ESP32-C3 hardware and finished running tests on it. Indeed, using the external JTAG pins doesnt’ seem to work at all. However, the built-in USB-to-JTAG engine works just fine. We have published a tutorial showing how to use it here and also contacted Espressif for clarifications on the external JTAG support.
Update: we just received clarifications from Espressif on this issue. Debugging ESP32-C3 with an external JTAG probe requires additional setups steps described in this thread. However, using the built-in JTAG engine should be much easier.
- This reply was modified 1 week, 4 days ago by support. Reason: reflected update from Espressif
We usually remove the toolchains that have been superseded by bugfix releases (i.e. use the same compiler version) to save space. If the bugfix release is less stable than the original one, it’s likely due to the ESP-IDF version included in it. If this is the case, please try getting the git commit ID of the version that works for you by running the following command in the esp-idf directory of the working toolchain:C++1git log -n 1
Below is the sample output from it:C++12345678910commit 1e3638390964c86b0e7ef3af02973b30c58ea1beMerge: 32c63fca9 1e8fca74fAuthor: Jiang Jiang Jian <firstname.lastname@example.org>Date: Fri Jun 11 05:19:05 2021 +0000Merge branch 'bugfix/handling_public_action_frame_v4.2' into 'release/v4.2'esp_wifi: Fix SoftAP crash by handling public action frames.See merge request espressif/esp-idf!13927
You can then checkout the same commit into the other toolchain, e.g.:C++1git checkout 1e3638390964c86b0e7ef3af02973b30c58ea1be