2024-07-27 01:56 PM - edited 2024-08-03 03:21 AM
I execute my program on unmodified nucleo-u5a5zj-q , it reliably reach the "Default_Handler" from the default startup_STM32U5A5ZJTXQ.s.
My understanding from the screenshot:
One or more points above may be wrong since the conclusion makes no sense
Notes:
2024-07-27 03:18 PM
LDRD/STRD are sensitive to alignment issues for the pointers
If a random interrupt, perhaps check source via NVIC
Check VCAP voltage and capacitors, these can cause sensitivity and failure issues. Certainly seen FLASH issues with insufficient bulk capacitance.
https://github.com/cturvey/RandomNinjaChef/blob/main/KeilHardFault.c
2024-07-28 12:30 AM
Thanks for your feedback.
The address of the faulty address seems well aligned isn't it ?
I believe that if the fault was due to an interrupt, the fault status registers would point to the interrupt code. Anyway my code do not have interrupt so I disabled them by setting PRIMASK=1, the same hardfault still occurs.
The STM32_Programmer_CLI tool indicates 3.29V, that seems well within the specs (I use brand new, unmodified nucleo board). I searched for "VCAP" in the nucleo doc but did not find it. Is there anything else I could check ?