This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LP-MSP430FR2476: creating non-volatile memory segment

Part Number: LP-MSP430FR2476

Tool/software:

I am trying to essentially create a larger segment of info memory. We have a number of calibration tables that need to be stored and protected from being overwritten during a firmware flash, or just about any other state change. They are far too large to fit into the normally allocated INFO segments, so the next logical step would be to create our own.

We tried the #pragma NOINIT as well as a number of linker configurations accompanying that. The documentation is strikingly bare as far as adjusting the linker file.

In addition, we created a separate memory segment, then located the data in that segment and told the IDE to not flash that portion of memory. However we would prefer to avoid this setup as it is unreasonable to expect the technicians programming these chips to setup their machines the exact same way as ours.

TLDR: It feels like we have been through the whole forum looking for a solution and all we want to do is make an existing function larger.

  • The simplest method is to use NOINIT and then (in the .cmd file) move the .TI.noinit section down next to .TI.persistent in the low end of FRAM. This will keep it from moving around so much.

    When programming, set "Project->Properties->Debug->MSP430 Flash Settings->Erase Options" to "Erase and download necessary segments only". Since NOINIT has no text associated with it, it will not be "necessary".

    Since NOINIT is (as you suppose) never initialized, you should consider how to deal with the first-time case (a checksum/CRC might be useful).

  • Hi Gabriel,

    There's no better advice from my side. maybe you can set dual firmware which is only for inforamtion and the other is for the app firmware with noinit.-> This aslo brings addtional work to prepare.

    B.R.

    Sal

**Attention** This is a public forum