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.

[参考译文] MSP430FR2355:更改链接器文件以将变量分配给 FRAM

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/884166/msp430fr2355-change-the-linker-file-to-make-variables-be-allocated-to-fram

器件型号:MSP430FR2355

大家好、团队、

我在链接器文件中更改了什么 shell、以便将变量分配给 FRAM、而不是 RAM。

默认情况下、变量分配给 RAM。

谢谢、

日落

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    persistent 变量部分已在 FRAM 中定义。 您可以在 CCS 或链接文件 IAR 中的.cmd 文件中找到该文件。

    要将变量定义为在 FRAM 中分配的 persistent,请参阅:

    //静态初始化变量
    #ifdef __TI_Compiler_version__
    #pragma PERSISTENT (x)
    unsigned int x= 0;
    #Elif __IAR_systems_ICC__
    __persistent unsigned int x= 0;
    其他
    //将以下变量移植到所使用的特定编译器的等效持久功能
    unsigned int x= 0;
    #endif

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您提供信息。

    因此、完全不需要更改链接器文件。

    我将对其进行测试。

    我还将检查汇编代码以查看编译器是否为 FRAM 存储器添加了解锁和锁定指令。

    我还将在存储器视图中检查变量地址。

    谢谢

    日落

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yu、

    我已经完成了一个简单的程序。

    在我定义 main 之前

    pragma PERSISTENT (myFRAM)
    unsigned int myFRAM;

    在 main 中、我编写了初始化代码:

    myFRAM = 0;

     myFRAM 的存储器地址位于 RAM 中、因此 PERSISTENT 不起作用。

    变量上有警告。

    要让 persistent 工作、必须立即初始化变量。

    pragma PERSISTENT (myFRAM)
    unsigned int myFRAM = 0;

    在第二种情况下、变量到达 FRAM 空间。

    如果我想制作数据记录器、我需要一个数组。

    要使用持久性、必须执行此操作。

    pragma PERSISTENT (myFRAM)
    unsigned int myFRAM[10]={0};

    以便将阵列分配给 FRAM 而不是 RAM。

    谢谢

    日落