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.

MSP430G553 non volatile memory

 Hi,

I know that the Flash is non volatile memory but it looks according to lnk430g2553.xcl that is it read only memory.

Is there any read write non volatile memory?

I need to right a certain value and reserve this value after reset.

Thanks for your help.

Yael

  • Yael Oz said:
    I know that the Flash is non volatile memory but it looks according to lnk430g2553.xcl that is it read only memory.

    Yes. Simply writing to a flash memory location won't have any effect.

    However, MSP flash can be made write-enabled by the running application. But this is more than just flipping a switch and then write to it. Flash memory can only be turned from 1 to 0 by a write operation (byte/word or even dword write). And it takes some time too, during which the whole flash memory is inaccessible.
    To turn a '0' bit back to 1, a whoel segment of flash memory must be exposed to erasing voltage. For main flash, this is 512byte at once. And it takes some milliseconds. Then you may write to it again byte by byte. So you cannot simply overwrite a value as you can do in ram.
    Each MSP has so-called info memory where the segments are smaller (64 to 256 byte each).

    Since erasing and writing is one in a very special way, the flash is considered as read only memory by teh linker, as writing to it cannot be done by simply - writing to it.

    IIRC there have been a few MSPs with EEPROM. Which can be altered byte by bylte and is also non-volatile. However, EEPROM write is slow too.

    The new FRAM devices have non-volatile memory that is truly read/write (and a memory protection unit that prevents accidentally overwriting the program code). However, the linker algorithm does not support memory that is read/write but can be 'locked' if needed. So it divides the available FRAM into fixed segments that are statically declared read/write for data and read-only for code. The applicaiton may change it, however, at runtime.

**Attention** This is a public forum