(Using S32K344, PlatformSDK_S32K3_2022_03, DS3.4)
I have a similar problem to what is described in the following issue:
Abnormal power down causing the Dflash area ???????(S32K342 MCAL) - NXP Community
However, in my case, even the cluster header of the first cluster sector gets corrupt (some cells shown as ???????? in debugger).
As suggested in the other topic, this might be due to an unfortunate power loss during Fls write. However, as power can never be guaranteed, I guess this scenario will occur sooner or later and thus needs systematic handling.
The recommended solution seems to be to modify the hardfault handler to allow for these Fls read (ecc) faults and, hopefully, give the Fee module a chance to correct the problem.
In my humble opinion, the Fee module should be robust even in such brownout scenarios without having to rely on application exception handlers.
Is there an upcoming update to the associated MCAL drivers or maybe an application note on the matter?
Also, the Fee data obviously is not readable after this, so there is a risk of data being lost. Is there a way of configuring the Fee to use duplicated data to avoid this?
Regards,
/Ola
Writing a program that constantly updates FeeBlocks and simultaneously cycling power quickly causes the issue to occur, i.e. that the Fee DFlash sector gets corrupted (????????? shown in debugger, probably ECC fault).
Obviously the driver is not on its own fully capable of handling this scenario.
Can I please get som help with this?
Regards
I'm sorry for the delay, we are heavily overloaded now. To get further SW support, could you please re-submit the question via your NXP FAE or distribution FAE?
Regards,
Lukas
It says in your referred text that the MemAcc driver will handle any IVOR exception that is thrown during startup. Is this something that needs to be set up explicitly?
Hi @ola_gook
this is common situation and the drivers take this into account. From user manual:
Regards,
Lukas
Thank you for your answer.
Glad to see that the driver is supposed to take care of this.
So what could be the reason for it not to work in my specific case?
Regards,
/O