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.

[参考译文] CCS/MSP430FR6989:MSP430存储器寻址

Guru**** 2595805 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/805077/ccs-msp430fr6989-msp430-memory-addressing

器件型号:MSP430FR6989

工具/软件:Code Composer Studio

您好!

我尝试将变量定位到特定的存储器位置、但它不起作用

以下是我的代码:

#pragma SET_DATA_SECTION (".infoD")
int x;
#pragma SET_DATA_SECTION ()

int main (空)

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

X = 5;

返回0;

以下是我的日志文件(这是一个十六进制 TI-txt 输出)结果:

为什么变量 x 不在我设置的存储器位置上? 我已编辑擦除选项擦除主内存和信息内存、但它仍然不起作用。

我使用的是 CCSv9和 MSP430编译器 v18.12.2。 谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这里是.infoD 存储器地址:
    信息系统 :origin = 0x1800,length = 0x0080
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >整数 x;

    这可能会被优化掉。 快速实验:尝试

    > volatile int x;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    这也无法正常工作。 或者、他们是否有任何方法可以查看结果以证明我是正确的?
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Lim:

    您的配置是正确的。 但您的观察方式是错误的。 我从我的角度尝试了这一点、在调试模式下、您可以看到编译器已将变量"x"放入地址0x1800中。 如下图所示:

    此外、如果要将"x"用作变量、而不是常量值、则最好也删除"MPU"函数。 强烈建议先参阅用户指南以了解详细的配置。 显示了删除"MPU"的方法(右键单击工程、选择"属性"):

    此致、

    哈里

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

    您好、Harry、

    我按照您的指示操作、但这也不起作用。

    是否有要修改的设置网络?

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    设置位于项目属性->调试->自动运行和启动选项->"在任何调试器访问之前停止调试器..."
    我解决了这个问题。 但是、现在如何将存储器位置与 TI-txt 文件匹配?

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

    尊敬的 Lim:

    我没有在那里设置任何其他配置。 请检查"debug"文件夹中的.map 文件、如下所示:

    您可以看到 INFOD 已被用于 int 类型变量"x"的2个字节。

    此外、您还可以发现变量"x"已经位于地址0x1800、如下所示:

    能否检查.map 文件(位于"Debug"文件夹)?

    此致、

    哈里

    PS、发现您已得到解决。 仍将上述内容作为其他人的参考发布。

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

    TI-txt 文件用于代码存储器(无论代码位于 FRAM 或 SRAM 中)、而不是变量。 对于完整的存储器映射、您可以在.map 文件中找到。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Harry、

    是的、我可以在.map 文件中找到它。

    谢谢你。