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**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/903915/msp430fr2355-i-broke-my-code-and-fram-not-writing

器件型号:MSP430FR2355

我有以下代码...我本来想去0x1800处的内存浏览器看1、2、3、4等等...但是我看到了所有 F… 不知怎么说我的代码坏了...我遗漏了什么?  闪存代码、这是永久性的

#include 

#pragma DATA_SECTION (PERSISTENT_Info、".info")
#pragma LOCATION (PERSISTENT _Info、0x1800)

char PERSISTENT_Info[9]={'1'、'2'、'3'、'4'、'0'、 "0"、"0"、"0"、"0"、"0"};

int main (void)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时
器}

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

    1) 1)没有提到 permanENT_Info、因此链接器将丢弃它。 尝试添加:

    > char * volatile blahblah = permany_Info;

    2) 2) DATA_SECTION 和 LOCATION 之间似乎存在交互(或可能非交互)。 观察到的行为是、如果使用位置、则使用启动初始化。 但是、除非您禁用 DFWP (CCS Generation->FRWP)启动、否则无法实际写入该文件。 根据您之前的描述、我建议您删除位置说明符。 即使没有它、它也会在0x1800处结束。

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


    谢谢 Bruce!  这解决了我的问题

    我发现不使用"volatile"是有效的、只要我执行任务、我也可以保留位置

    在这个硬件人员学习固件的过程中、您已经获得了很大的帮助!!!  比我想象的要更多地了解工具...我希望能在某个时候回到调试固件...我仍然遇到了您一直在帮助解决的"无验证"问题的突出问题