After "Connect to Target", the firmware appears to be running OK but the information in Ozone is strange. The system uses STM32 HAL which uses 'uint32_t uwTick' for system ticks (milliseconds). If I watch it live, it should increment at about 1000/second. It starts to do that, but then occasionally jumps to a strange number. It then changes back to the correct value as if it was still incrementing correctly. Each time it jumps to the strange number it is the same odd value. Other static/global variables in the system behave the same way. I use uwTick as a sanity check.
We use STM32H743. The system has a bootloader as well. Trace is enabled via pins (J-Link Pro Cortex M). Trace has been working for a while now.
I have narrowed this down to requiring an Ozone debug connection to the device after a power-cycle and before the bootloader starts the application. Once that is done, I can use Ozone to reset the application to main() and run from there. At this point, I can even give the device a user command to reset, and the bootloader will start the application (leaving the debug session running). I can exit the debug session and connect to targe and it works fine. Trace counters don't work when doing that, but the live variables look good. Performing a reset (F4) and restart from main() works fine. But if I disconnect and power-cycle it acts up again when I connect to target.
Debugging in general has been working well for a few months now. This came about when I was trying to debug a .out file built on another system. We map appropriate paths for the .out file using Project.AddPathSubstitute().
We use STM32H743. The system has a bootloader as well. Trace is enabled via pins (J-Link Pro Cortex M). Trace has been working for a while now.
I have narrowed this down to requiring an Ozone debug connection to the device after a power-cycle and before the bootloader starts the application. Once that is done, I can use Ozone to reset the application to main() and run from there. At this point, I can even give the device a user command to reset, and the bootloader will start the application (leaving the debug session running). I can exit the debug session and connect to targe and it works fine. Trace counters don't work when doing that, but the live variables look good. Performing a reset (F4) and restart from main() works fine. But if I disconnect and power-cycle it acts up again when I connect to target.
Debugging in general has been working well for a few months now. This came about when I was trying to debug a .out file built on another system. We map appropriate paths for the .out file using Project.AddPathSubstitute().