Hello NXP,
I have a question when I am trying to implement bootloader of S32K118, please give me some help.
First of all, I have defined the ".noinit" section in the linker file ,from 0x200057C0 to 0x200057FF.
Then, I have defined two pointer variables(uint32_t) like this:
uint32_t * pProgrammingReqFlag = (uint32_t *)0x200057c0;
uint32_t * pApplicationValidity = (uint32_t *)0x200057c4;
And the values in these addresses will be checked after reset(you will find in "main.png").
The question is: when I downloaded this project into hardware ,it works well, but if I reset the hardware (power off and power on), it do not work any more !
How to access the .noinit section ? or is there anything else need to be modified in the linker file?
It is resolved by modifying the initializer of ecc-ram.
Hi,
yes, ECC is the key point.
And let me share recommended procedure to retain SRAM content across reset:
Regards,
Lukas
BTW, if these two variables point to any other address which is not located into the .noinit section, it works well after power on.
uint32_t * pProgrammingReqFlag = (uint32_t *)0x200027c0;
uint32_t * pApplicationValidity = (uint32_t *)0x200027c4;