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.

关于FRAM数据存储问题

Other Parts Discussed in Thread: MSPWARE

由于程序空间有限,想把初始写数据的程序删掉,直接把数据存到FRAM,怎么做?

  • 意思不太明白,是程序空间不够了?如果把数据存到FRAM会使程序空间更紧张。

  • 楼主的一起应该是直接把数据存储定义在fram区域吧?

  • 直接放在空闲FRAM区域,自行读取即可。可以参考MSPWARE中有FRAM读写的例程。

  • hao qi ,

    你是想把一些初始化数组直接放到FRAM区吗?

    FRAM 是Data和Code动态分配的,但是总大小肯定还是受限于总共有多少FRAM的,譬如总共16KB FRAM, 那么分配到FRAM的code和Data总大小不能超过16KB。

    具体如何分配,需要使用CCS中的CMD文件或者IAR中的.xcl文件来总体管理。

    具体可以参考文档:“”MSP430™ FRAM Technology – How To and Best Practices“”

     http://www.ti.com/lit/an/slaa628/slaa628.pdf 

    其中有cmd和xcl文件具体的Memory Partitioning Support in the MSP430 IDEs说明。你看想把哪部分放在FRAM中。

  • hao qi,

    如下,例如你想把global变量放到FRAM,那就需要在CCS .cmd文件中将 .bss, .data制定到FRAM中。

    同样你也可以自己将FRAM地址进行规划,例如FRAM分化成FRAM1, FRAM2,FRAM1放code,FRAM2放data。都很灵活。有需要先看看文档“”“MSP430 Optimizing C/C++ Compiler v16.12.0.STS  User's Guide” http://www.ti.com/lit/ug/slau132n/slau132n.pdf , 里面有对CCS linker file的讲解。

  • 那如果使用的是IAR,那就要仔细分析IAR的XCL文件了。可以将全局变量,stack,heap,const data等都放在FRAM中,那么IAR的code、stack、heap是怎么分配的,是动态分配的吗?

  • 你的龙猫,

    你可以参考一下IAR Embedded Workbench for MSP430 user's guide 以及EW430_CompilerReference,里面有详细说明,具体你可以参考下列截图。可以指定其大小和位置。

    http://www.ti.com/lit/ug/slau138an/slau138an.pdf

    http://perso.citi.insa-lyon.fr/afraboul/rts6/doc/EW430_CompilerReference.pdf