Peripheral registers in Qt Creator during debugging
<p>I use Qt Creator to develop embedded application using Bare Metal configuration for STM32. When I debug this application under different IDEs like KIEL uVision, IAR System Workbench or some Eclipse IDE I have special view available where I can see processor specific registers in tree list. Is there something similar for Qt Creator?</p>
<p>I've seen the register view in debug view. Is there possibility to tell it which memory address to show?</p>
<p>EDIT: The application I'm writing is in C and C++. The target is microcontroller based on ARM architecture in this case STM32. There will be no Qt or QML code.</p>
<p>My goal is to use QtCreator as IDE for developing this application. This quite easy as you just configure the compiler (arm-none-eabi-gcc), debugger (arm-none-eabi-gdb) and gdb-server (openocd) in the kit configuration. This allows me to create executable elf file for bare metal target and then flash it to the FLASH memory inside the microcontroller.</p>
<p>All these steps are already done.</p>
<p>However the debugging part gets tricky as part of the memory space is direct hardware configuration and not pure memory. This memory space contains the configuration for the peripherals which allows you to e.g. talk over UART, I2C, ETHERNET, USB or just configure the pins or clock speed.</p>
<p>You need to look at these values and compare them with reference manual and see what each bit does. Currently it is possible to look at the memory map and read it there but Keil uVision, IAR System Workbench and Ecplipse based IDEs have nice plugin where you can see the values exactly as in the reference manual. (see the images)</p>
<p>So my question is if there is some plugin or some way how to view and edit these or if I have to write this plugin myself?</p>
<p>In the latter case I would need to know how to connect to the debugger instance and write commands and read output - mainly read data @address and write data @address. I understand that the gdb uses the MI mode. I tried to connect to gdb from different process but that is not possible so I guess that I'll have to create plugin for Qt Creator. The register description is in file format SVD which is XML with defined structure.</p>
<p>To summarize the last part I look for code that I have to implement in the plugin that will connect me to the running gdb and allow me to send and receive data when it hits breakpoint.</p>
<p><img src="https://i.stack.imgur.com/7x6DZ.jpg" alt="STM32 Memory map" />
<img src="https://i.stack.imgur.com/kFhPe.png" alt="Keil registers" />
<img src="https://i.stack.imgur.com/gPL2r.png" alt="Eclipse registers" /></p>