S32K118 noinit RAM

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K118 noinit RAM

1,924 Views
YuepengWang
Contributor I

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?

0 Kudos
Reply
4 Replies

1,891 Views
YuepengWang
Contributor I

It is resolved by modifying the initializer of ecc-ram.

0 Kudos
Reply

1,877 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

yes, ECC is the key point.

And let me share recommended procedure to retain SRAM content across reset:

SRAM retention.jpg

Regards,

Lukas

 

0 Kudos
Reply

1,865 Views
YuepengWang
Contributor I
Hi Lukas, thank you for your information !
0 Kudos
Reply

1,922 Views
YuepengWang
Contributor I

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;

0 Kudos
Reply