Part Number: MSP430FR5994
Other Parts Discussed in Thread: MSP-CGT
We use some noinit variables in our MSP430FR5994 program. For example:
extern volatile unsigned int test_timer __attribute__ ((section(".TI.noinit")));
Normally, and that for nearly all the modules, after a software reset ("reset();") or a power down, all the noinit variables are still right, with the old initialisation values (the values saved before the reset or power down action). That's exactly what I expected. The NOINIT variables not changes, as they are stored "permanently" in the FRAM.
Now, on a small amount of devices (around 10% all devices), these noinit variables themes not to be saved after a reset. They always show "0" after a software reset or a power down reset. For example:
test_timer=10; //Initialisation of the variable
reset(); //Software reset
//The test_timer variable is now reseted to o
I tried with the PERSISTENT Pragmas, but the result is the same.
Has someone encounted a similar problem? What could be the origin of this effect? What might be the solution to avoid the reinitialisation to 0 of all the noinit variables after a software reset? What is, according to you better to use NOINIT or PERSISTENT, if the variables should be saved after a reset?