VisualGDB features for embedded development

Sysprogs forums Forums VisualGDB VisualGDB features for embedded development

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #915
    swineone
    Participant

    I just wrote a huge post here, but despite being logged in to the forum, phpBB somehow decided I wasn’t logged in, and that anonymous users can’t post hyperlinks, and next thing I know, the huge post that took me an hour to write was gone. Of course, one should expect no less from phpBB, but I digress. So sorry if the new one I write feels a bit rushed since I’m not going to take another hour to write this again.

    I’m interested in VisualGDB, and I develop for the STM32 line of MCUs using the ST-Link debugger. I’d like to know whether the following features are supported:

    1. How easy is it to make an STM32 project with startup files and the ST standard peripheral library? Can it all be done with a wizard?

    2. Are other GCC toolchains such as GNU Tools for ARM Embedded Processors supported, or only your own toolchains from gcctoolchains dot com?

    3. Are live variables in the style of STM Studio supported?

    4. Is the ST-Link GDB Server supported, or only OpenOCD?

    5. What’s the level of FreeRTOS support, in particular for viewing the backtrace of different threads, as well as the state of any running thread (running, suspended, blocked, etc.)? I saw a tutorial on your site indicating I can write a plugin for it but I have zero experience with C#.

    6. Is profiling supported?

    7. Is there a window to view and update the values of a chosen memory address? I’m not talking about printing the value of a pointer using a GDB expression, but rather something that looks like a hex editor. Can I export the contents of a block of memory, and maybe import them as well?

    8. Can I view CPU registers, including the FP registers on Cortex-M4 devices? What about hardware registers, like those used to configure GPIOs, timers, USARTs, etc.? Not only viewing their raw value but also decoding what each bit does in the hardware registers.

    9. Is there a Serial Wire Viewer console for printing the output of ITM_SendChar() commands, or only the conventional semihosting method?

    Thanks

    Décio

    #3428
    support
    Keymaster

    Hi,

    Sorry about your PhpBB experience, normally when you press ‘back’ in your browser, the text you entered on the page should reappear. if that does not happen, you may want to update your browser. We had to disable hyperlink posting for anonymous users because we were getting 20+ spam posts per day despite having a custom CAPTCHA.

    Please find the answers to your questions below:
    1. It is straight-forward. See the STM32 tutorial here: http://visualgdb.com/tutorials/arm/stm32/
    2. You can use any GCC-based toolchain of your choice (some our customers even reported success with using the IAR compiler). However you may need to specify some GCC flags manually if your toolchain handles them differently from ours.
    3. This is not directly supported by VisualGDB, however you can use the GDB tracepoint commands (https://sourceware.org/gdb/onlinedocs/gdb/Tracepoints.html) to collect data in a similar way. You can enter GDB commands directly in the GDB Session window while using VisualGDB.
    4. Last time we checked, ST did not ship their own GDB Server. Hence we support OpenOCD and Texane ST-Link tool out-of-the-box. If you want to use some other GDBServer, simply choose the ‘custom mode’ and specify the path to your GDBServer manually.
    5. You can support FreeRTOS threads by writing a thread visualization plugin. There is a detailed tutorial here: http://visualgdb.com/tutorials/arm/threads/
    6. VisualGDB does not have any special support for profiling. You can use the built-in GCC/GDB features for it.
    7. You can use the Visual Studio memory window just like when debugging Windows programs.
    8. You can use the VS Registers window to view the CPU registers and the Embedded Registers pane to view the peripheral registers.
    9. The problem with serial wire viewer is that ST-Link uses an undocumented protocol and hangs randomly when you try to view the output. Hence OpenOCD and Texane ST-Link tools support it, but it not very useful in practice. You could get a stable SWV output if you use Segger J-Link with Segger software.

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.