Other Parts Discussed in Thread: UNIFLASH
Tool/software:
Hi, I'm using secondary bootloader like so. I've configured the .cmd file correctly, and somehow able to flash another firmware one time (to 0x0000) using a modified BSL GUI (we are using half-duplex uart). (This procedure is extremely flaky too, but let's talk about it in a separate thread).
Anyway, the GUI reports a success, but the application I've flashed in doesn't run. Subsequent attempts to run the bootloader do not work too. And the GUI's success seems real too, as I've tried interrupting the firmware update by removing power and the GUI reports a failure.
Most problematic is that when I use either Theia v20.0.1.4 or Uniflash v9.0.0.5086 to view the flash memory, I keep getting this error:
At this point, it is impossible to do anything with the XDS110 debugger (run debug, flash new firmware), except to factory reset the target and try again. Luckily, that works! But it also means I have no way of debugging what's really going on.
On a related note: this seems to be related to BSL entry. After I have done factory reset, if I flash in a "normal" application with this line of code:
DL_SYSCTL_resetDevice(DL_SYSCTL_RESET_BOOTLOADER_ENTRY);
It will cause the PRSC failure to happen as well, requiring a full factory reset to recover the situation. This happens when the Secondary BSL is loaded in the address 0x6000, but also when no Secondary BSL is loaded.
Is this expected behaviour that using the BSL causes SWD debugger to stop working forever? Is there any way to figure out why I'm unable to run my target application?