Oyvind,
Thanks for putting this together. Looks quite useful, and saves some
monotony debugging.
I put together a similar script but as a Python function for GDB:
https://gist.github.com/microbuilder/1677a27e4566a28b36a79f954f1dede6 ...
having this in C, however, means you don't need to have a Python-enabled
version of GDB.
Best regards,
Kevin
On Fri, 29 Jan 2021 at 11:33, Rønningstad, Øyvind via TF-M <
tf-m@lists.trustedfirmware.org> wrote:
Hi everyone
I wanted to make it easier to debug HardFaults/BusFaults/SecureFaults in
TFM, since I’ve gotten quite a few of them while adding the nrf platforms.
I have created a proposal in
https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/7891 and
would like to get some comments on the general idea.
The proposal gathers a number of different values, especially the ones
that are harder to retrieve in a debugger, like the fault status registers
in SCB.
The values are placed in memory so they can be inspected in a debugger,
and if built with -DTFM_SPM_LOG_LEVEL=TFM_SPM_LOG_LEVEL_DEBUG they are also
printed.
Here is an example of the printout:
FATAL ERROR: HardFault
Here is some context for the exception:
EXC_RETURN (LR): 0xFFFFFFBD
Exception came from non-secure FW in thread mode.
MSP(_S): 0x200007F8
PSP(_S): 0x20000F28
Exception frame at: 0x200176D8
R0: 0x0000003E
R1: 0x00000001
R2: 0x00000001
R3: 0xFFFFFFFF
R12: 0x00000000
LR: 0x00050623
PC: 0x00050626
CFSR: 0x00000000
BFAR: Not Valid
MMFAR: Not Valid
HFSR: 0x40000000
SFSR: 0x00000000
SFAR: Not Valid
BR, Øyvind Rønningstad
TF-M mailing list
TF-M@lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-m