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.

[参考译文] MSP430FR6989:如何编写 FRAM 程序

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/726659/msp430fr6989-how-to-write-fram-program

器件型号:MSP430FR6989

现在我正在执行以下程序。
# pragma RETAIN (Tname)
# pragma DATA_SECTION (Tname、"。 信息发展");
const char Tname [8]="鳟鱼";
# pragma RETAIN (UDATA)
# pragma 位置(UDATA、0x4600)
           const int UDATA [3][8]={
                    {0xFF、0xFF、0xFF、0xFF、0xFF、 0xFF、0xFF、0xFF}、
                    {0xFF、0xFF、0xFF、0xFF、0xFF、 0xFF、0xFF、0xFF}、
                    {0xFF、0xFF、0xFF、0xFF、0xFF、 0xFF、0xFF、0xFF}、

主(){
       const int UDATA [3][8]={
                {1、2、3、4、5、 6、7、8}、
                {11、12、13、14、15、 16、17、18}、
                {21、22、23、24、25、 26、27、28}、};

在#pragma 位置设置的 UDATA 被写入0x4600、
主例程中的 UDATA 被写入 RAM 和0x4428。
不会重写0x4600的值。 是这样吗?
我认为 UDATA 的地址将为0x4600、但如果在主例程中确认了该地址、则将其设置为 RAM 区域。

此外、
# pragma RETAIN (数据)
# pragma 位置(DATA、0x4500)
int data [8]={1、2、3、4、5、 6、7、8};
int data 2 [16]={1};
如果您定义它、数据将放置在0x4500、但您设置的数据将为-1。
Data2被放置在 RAM 中。
为什么数据不得到反映?

用于对 FRAM 区域进行变量声明、适用于每个变量
# pragma RETAIN ()
# pragma 位置()
有必要这么做吗?

此致。

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

    感谢您的发帖。
    我们将研究您的问题、尽快回复您。

    谢谢、
    是的