Forum Replies Created
-
AuthorPosts
-
support
KeymasterVisualGDB is licensed per seat i.e. computer/user combination. As a special exception to this rule, we allow the usage of two seats for personal i.e. non-company licenses.
support
KeymasterNo problem. We have fixed the issue in the following build: Analyzer2Go-2.1.0.28.msi
support
KeymasterHi,
It looks like your project might not be generating debug symbols. Please first try creating a new project from scratch for the same device (using the same compiler) and verify that you can debug it. You can use the following dummy main() function to try out breakpoints/stepping:
int main() { asm("nop"); asm("nop"); asm("nop"); return 0; }
If it doesn’t help locate the problem, please describe what happens when you try the dummy project, and also share the .vcxproj file and the gdb log file for the broken project and we will help you get it to work.
support
KeymasterSorry, trying to assume the new value instead of verifying a stable value would break the current I2C parsing logic. We might be able to add an option for this in one of the future releases, but we wouldn’t promise it currently.
As a quick-and-dirty workaround, please try selecting a several clock cycles in the SCL signal and clicking the clock pulse icon. This will print the stable values of the SDA signal, making it easier to read.
support
KeymasterThanks for the detailed explanation. Unfortunately, it still doesn’t make full sense. Pressing backspace in the context of the “tab-not-working-1.png” screenshot would delete the ‘/’ character at the end of the /* USER CODE END Includes */ comment. This should not be affected by the tabs settings.
Generally, if you have generated a .c/.cpp file using STM32CubeMX, it will contain the tabs or spaces depending on the STM32CubeMX settings, not VisualGDB settings.
The VisualGDB settings for tabs and spaces will apply when adding new lines to the files, but it will not automatically replace them in existing files, to avoid unnecessary changes.
You can somewhat override it by removing all indentation (Ctrl-A to select the entire file, then press Shift-Tab several times) and reformatting the document using VisualGDB (Ctrl-K, Ctrl-D).
support
KeymasterHi,
If the load command erases the bootloader, the file you are programming might contain some data in the bootloader regions. You can double-check it via the Embedded Memory Explorer, and also by looking at the output from the “load” command.
If you can confirm that the ELF file does not have any data there, but the ‘load’ command still erases it, please indeed check with Segger, as their gdb stub is handling the low-level FLASH programming behavior.
The FLASH protection bits are specific to each device family and are usually described in your device’s datasheet. Please refer to the device documentation/datasheets for more details on them.
If nothing helps, please check if you can program just the correct part of the memory using some command-line tools (e.g. Segger or ST-Link). If this is the case, you can disable the memory programming via VisualGDB Project Properties -> Debug Settings and then run the custom command-line tool before debugging via VisualGDB Project Properties -> Custom Debug Steps.
support
KeymasterHi,
VisualGDB supports all debug interfaces supported by the OpenOCD tool, including ST-Link v3. If it doesn’t work, please make sure you use the latest VisualGDB 5.5 Preview 4 and install the latest OpenOCD package via Tools-VisualGDB->Manage VisualGDB Packages.
support
KeymasterOK, we have investigated the problem. It looks like the I2C peripheral you are using is doing the clock stretching and it releases the SCL clock at the same time as pulling SDA down to acknowledge the transmission:
At least, at the current sampling frequency, it looks like SDA changes exactly at the rising edge of SCL (when it should be stable), so Analyzer2Go aborts the I2C parsing.
Our best advice here would be to try using a faster board (e.g. CYUSB3KIT) that will be able to tell the difference between the times when SDA and SCL change.
P.S. Although it doesn’t fix this issue, we have improved our I2C parser in the following build: Analyzer2Go-2.1.0.21.msi . It now supports 10-bit addressing mode and works better for zoomed-out signals.
Attachments:
You must be logged in to view attached files.support
KeymasterHi,
Sorry, unfortunately it’s hard to tell how to reproduce the problem based on your description.
Please describe it using the recommended 3-step format (including the screenshots of all relevant settings) so that we could follow exactly the same steps on our side and reproduce it.
support
KeymasterThe automatic library discovery is indeed not recursive, so if the added library depends on pthread, VisualGDB would only suggest adding pthread when you build the project again (and the build fails due to missing pthread functions).
There also might have been a confusion between pthread and the asan library that provides similar functions, but is intended to work as a diagnostic layer on top of pthread. We have updated VisualGDB internally to hide the confusing asan/lsan libraries when searching for pthread symbols and only suggest the pthread library itself. Until we release the next preview build with this fix, please make sure you select the pthread library when VisualGDB suggests several libraries resolving pthread symbols.
support
KeymasterIt looks like your support period has expired. Please renew it here: https://sysprogs.com/splm/mykey
support
KeymasterSorry, this looks like an issue of a specific ESP-IDF version and not something specific to VisualGDB. Please try building the project manually per ESP-IDF documentation and check if the problem persists.
If the project can be built outside VisualGDB, but doesn’t build with VisualGDB using the same toolchain/ESP-IDF/settings, we can help you configure VisualGDB to replicate the manual build results.
support
KeymasterHi,
Please refer to the following page: https://visualgdb.com/support/idfcheckout/
support
KeymasterThanks for your feedback.
Regarding the performance, most likely you are using a different build system and a different programming method (e.g. CMake vs. GNU Make and Serial port vs. JTAG). VisualGDB supports both build and both programming methods, and as long as you are using the same method with both IDEs, the build performance should be the same. Also MinGW-based toolchains are much faster than Cygwin-based toolchains, so please make sure you are using the same toolchain in both cases.
support
KeymasterHi,
Normally, the Segger J-Link software should only erase the affected FLASH pages, so please double-check your ELF file layout via View->Embedded Memory Explorer.
If it doesn’t help, please follow the steps below to diagnose the issue:
- Disable the FLASH memory programming via VisualGDB Project Properties -> Debug Settings.
- Program the memory via an external tool and verify that both parts have been programmed.
- Start a debug session with VisualGDB (it should not re-program the FLASH memory).
- Verify that both bootloader and main application’s areas have not been erased by running “x/10x 0x<ADDRESS>” in the GDB Session window.
- Run the “load” command in the GDB Session window and check its output. Once the loading completes, check whether the entire FLASH memory has been erased again.
If you can confirm that the “load” command erases the entire FLASH memory, please check your FLASH protection bits, and also check with Segger support (there might be a J-Link setting controlling the FLASH erasing logic). If running the “load” program does not erase the entire memory, please create a full gdb session log and we can help you find commands that could be erasing the FLASH memory.
-
AuthorPosts