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.

[参考译文] MSP430FR5964:错误"未定义符号"在链接器命令文件中

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1010236/msp430fr5964-error-undefined-symbol-in-linker-command-file

器件型号:MSP430FR5964

各位专家、您好!

我的客户正在评估 MSP430FR5964。 当它们在链接器命令文件中添加一个用于外部引用的符号并使用 C 源文件(内联汇编器)的引用进行编译时、它们有时会遇到错误(未定义的符号)。

您能告诉我它在什么情况下会变成错误、以及如何避免它?

"详细信息"。
以下是 lnk_msp430fr5964.cmd 有问题部分的摘录。

MEMORY
{
    FRAM_BOOT               : origin = 0x4000, length = 0x4000
    FRAM_MAIN               : origin = 0x8000, length = 0x7F80
{

/* Export define */
__BootFirm_start__ = start(FRAM_BOOT);
__MainFirm_start__ = start(FRAM_MAIN);
__FramMainFirm__   = start(FRAM_MAIN);

对于主程序、它们分为"main.c";对于自定义引导程序、它们分为"boot.c"。 当他们检查"boot.asm"的内容时、他们发现".global __MainFirm_start____"已创建、但".global __FramMainFirm __"未创建。

我们已确认以下手册中保留的词语不适用。
slau131y.pdf (MSP430汇编语言工具 v21.6.0.LTS 用户指南(修订版 Y)):8.5.1链接器命令文件中的保留名称

如果有任何其他需要检查的内容或缺少的信息、请告知我。

此致、
还不错

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

    您好!

    我无法使用 CCS v10.3复制错误。 我从 TI Resource Explorer 导入了一个简单的 FR5964代码示例、将摘录添加到.cmd 文件中、并构建了 CCS 工程。 请注意、我还将对 FRAM 的任何引用更新为 FRAM_BOOT 以防止其他错误。 然后、我检查了.map 文件并注意到__FramMainFirm__位于0x8000、这是正确的。 请参阅.map 文件中的以下代码片段。

    0000015c  WDTCTL_L              
    00004000  __BootFirm_start__    
    00008000  __FramMainFirm__      
    00008000  __MainFirm_start__    
    00003c00  __STACK_END           

    我不确定要推荐什么、因为我无法重现此问题。 如果他们正在使用自定义引导加载程序、为什么不使用 MSPFRBOOT?

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

    您好!

    客户方面的 c 文件中的符号定义似乎存在问题、修复后、构建成功、没有任何问题。

    我很抱歉这个问题。 如果您可以关闭该线程、那会很有帮助。

    此致、
    还不错