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.

MSP430FR5964的FRAM要分别放48K CODE,其他都是DATA.一下载CODE就把整个FRAM清空了,DATA也没有了,如果要下载CODE时,保留DATA有办法嘛?

Other Parts Discussed in Thread: MSP430FR5964

MSP430FR5964的FRAM要分别放48K CODE,其他都是DATA.一下载CODE就把整个FRAM清空了,DATA也没有了,如果要下载CODE时,保留DATA有办法嘛?

1.现在用的是IAR.

2.没有采用Bootloader.

  • 您现在的DATA是常数?

    FRAM的芯片的代码区域和RAM区域是可以根据需要来灵活划分的。您可以尝试把这段常数代码划分为RAM区使用。基于FRAM的掉电不丢失特性,对于将FRAM划分为RAM来使用的区域,不会像一般RAM那样被上电初始化,并且保持数据不丢失。这个区域,只在第一次烧程序时初始化后,以后上电后都会为当时烧写的值。而且这段区域被划分为RAM使用的话,您的代码就不会被分配在这个区域,那无论你怎么更新程序,都不会影响这段区域的值。
  • 谢谢回复!我的DATA 不是常数,而是我动态存储的一些数据。如果我不烧写程序,断电后,这些数据是可以保留的,完全没有问题。但是,当我重新更新程序后,我存储的数据,将会消失。
  • 变量的话也是可以以上述方式来进行存储的,即存放在将FRAM划分为RAM来使用的区域中

    您可以参考一下

    www.ti.com/.../slaa628.pdf
  • 这个文档我有,修改.xcl 文件;是不是我把FRAM划分成RAM,下载的时候,就不会把该区域的内容清除掉;MPU是否有必要启用?
  • user6132126 说:
    是不是我把FRAM划分成RAM,下载的时候,就不会把该区域的内容清除掉;MPU是否有必要启用?

    是的,您可以将FRAM划分出RAM以防止代码更新时修改变量值。是需要enable MPU的,以确保最大的应用程序稳健性和数据完整性。