void ForceDestructiveReset(void)
{
MC_ME->MODE_CONF = 0x00000002;
MC_ME->MODE_UPD = 0x00000001;
MC_ME->CTL_KEY = 0x00005AF0;
MC_ME->CTL_KEY = 0x0000A50F;
while (1) {}
}
We have observed that the following software reset logic (e.g., ForceDestructiveReset()) was functioning correctly when all secure functions (such as Secure Boot, Secure Debug, and Lifecycle state like HSE_LC_IN_FIELD) were disabled.
However, after enabling the secure functions, the same reset code no longer works. This issue is currently blocking our FOTA (Firmware Over-the-Air) functionality, since we can no longer reliably trigger a system reset from software.
We are seeking advice on this issue:
Could you provide any insights into why the Destructive Reset via MC_ME may be failing under secure lifecycle conditions?
Alternatively, are there other recommended approaches to perform a software-triggered reset in this lifecycle (e.g., HSE command, watchdog, or any other method)?
Please note: we do not consider this a security-related reset, but rather a general-purpose software reset requirement.
We would appreciate any suggestions or best practices to resolve this situation.
解決済! 解決策の投稿を見る。
Which specific device is this question related to?
Could you also specify used RTD and HSE FW version?
I don't see any direct relation between option to initiate SW reset and device's LC unless your application set up any kind of restriction according LC. How the issue manifests actually? You only described "it does not work". Do you some exception what exactly?
Anyway your sequence triggers functional reset, not destructive as you may need.