I’m using the S32K312 microcontroller with a bootloader located at address 0x400000. My requirement is to jump to the address 0x450000 every minute irrespective of Application software presence. However, when I attempt this, it triggers a hard fault if there’s nothing at that address (initial condition when there is no application), and I’ve enabled the watchdog timer to reset every 10 seconds. After jumping to 0x450000, the microcontroller doesn’t seem to hit the hard fault as expected, and sometimes the watchdog timer stops functioning after jump (the watchdog enable bit becomes 0), even though I’m not de-initializing it before jump .
How can I ensure a safe jump to a specific address without causing the microcontroller to enter a stuck state, and how can I maintain reliable watchdog operation while ensuring that I return to the bootloader correctly every time?
Hi @samvidh,
What is the state of the core if it is not in the fault exception handler?
Can you show the core registers?
The SWT0 registers can be locked (CR[HLK] = 1), the lock can be cleared by the system reset only.
Do you monitor the reset_b pin during the jump?
Thank you,
Daniel