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/MSP432P401R:使用链接器生成的符号。

Guru**** 2611385 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/641962/ccs-msp432p401r-using-linker-generated-symbols

部件号:MSP432P401R

工具/软件:Code Composer Studio

如何在程序中使用生成的链接程序"__TI_CINIT_LIMIT"?

我想以编程方式查找所使用的闪存的顶端。

这是查找它的最佳选项吗?

谢谢。

瑞吉酒店

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

    是否要在C文件或链接程序命令文件中使用符号?

    在链接程序命令文件中,可以执行如下操作:
    __stack_top =__stack + 512;

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

    谢谢John,

    在我发布后,我发现了一个小宝石...

    我想以编程方式使用链接器符号 ,并发现:

    外部UINT32_t __TI_CINIT_LIMIT;

    #pragma retain (my_size)

    #pragma location=0x1万

    const UINT32_t my_size =(UINT32_t)&__TI_CINIT_LIMIT;

    它就像一种魅力。

    谢谢。

    瑞吉酒店

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

    这仅适用于大内存型号。  要使其在所有内存型号中正常工作,它应该:

    const UINT32_t my_size =(UINT32_t)_symval(&__TI_CINIT_limit); 

    您不需要任何一个pragma就可以使my_size包含正确的值,但这不会对任何事情造成损害。

    不能保证.cinit部分将是闪存中的最后一部分;您需要检查链接器映射文件以验证此内容。  目前没有内置运算符可为您提供闪存中最后使用的存储位置。  但是,已提交增强请求CodeGen-2377以请求此功能。

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

    尊敬的Arch

    我很高兴收到TI“大师”的回复。 感谢您抽出宝贵的时间来回答这个小问题!

    您的答案已保存。

    非常感谢。

    瑞吉酒店