I succeeded in configuring FlexRAM as emulated EEPROM and it is working as expected. I only wanted to know how to set initial values in this EEPROM.
I tried to do the following (struct initialization):
typedef struct
{
uint8_t u8;uin16_t u16;
} eeerom_data_t;__attribute__ ((section(".eeeprom"))) eeerom_data_t eeerom_data = {.u8 = 12, .u16 = 3456};
But unfortunately didn't work, I think because the FlexRAM area is set to 1's on flashing the software to S32K144.
Is there any way to achieve initial values of FlexRAM as emulated EEPROM? Thanks
Solved! Go to Solution.
Hi,
The system should not access the data in FlexRAM until the flash controller completes the initialization indicated by the FCNFG[EEERDY] flag.
If you need to have the EEPROM initialized, copy the data from Flash once the EEPROM is ready.
Regards,
Daniel
Hi,
The system should not access the data in FlexRAM until the flash controller completes the initialization indicated by the FCNFG[EEERDY] flag.
If you need to have the EEPROM initialized, copy the data from Flash once the EEPROM is ready.
Regards,
Daniel
Unfortunately, this wastes program memory but I assume it's not that big of an issue. I also think this is the only way to do it. Thanks anyway.
Hi,
In AN12130, there is:
If your programmer/debugger supports scripting, you can use a script to check the EEERDY flag and to write the data.
But this is not a question on the MCU but rather on the programmer.
Regards,
Daniel
Thanks for the link. It's interesting but as you said it is programmer work not SW. I think copying from flash to FlexRAM after EEERDY does the trick.