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.

[参考译文] 我将项目输出格式更改为 eabi、现在在 RamfuncsRunStart 和 Friends 上出现错误

Guru**** 2568565 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1179886/i-changed-my-project-output-format-to-eabi-and-now-i-get-errors-on-ramfuncsrunstart-and-friends

主题中讨论的其他器件:C2000WARE

我从 MotorControlSDK (不再使用)继承的 hadware_init.c 文件中引用了这些变量、如下所示   

memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);

如果我注释掉该行、代码会编译并链接、但在没有调试符号的情况下、我会进行整理、然后  

机器代码 Estop。

我怀疑这可能与我的.cmd 文件中的这个部分有关:

.TI.ramfunc      :
   		{
		-l driverlib/f28004x/driverlib/ccs/Release/driverlib.lib<spi.obj>,
		-l driverlib/f28004x/driverlib/ccs/Release/driverlib.lib<interrupt.obj>
		}
   					  LOAD = FLASHB0_SA,
                      RUN = RAMLS4_7,
                      LOAD_START(_RamfuncsLoadStart),
                      LOAD_SIZE(_RamfuncsLoadSize),
                      LOAD_END(_RamfuncsLoadEnd),
                      RUN_START(_RamfuncsRunStart),
                      RUN_SIZE(_RamfuncsRunSize),
                      RUN_END(_RamfuncsRunEnd),
                      PAGE = 0, ALIGN(4)

但我不确定如何继续。

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

    为 EABI 编译时、编译器会在诸如 RamfuncsRunStart 的符号名称中添加下划线。  它在每个上下文中都不显示前导下划线、包括链接器命令文件。  有关详细信息、请参阅 较大文章 C2000从 COFF 迁移到 EABI 的"无前导下划线"部分

    下面是一个示例、展示了它的外观。  这些行来自 C2000Ware 中的链接器命令文件。

       #if defined(__TI_EABI__)
           .TI.ramfunc : {} LOAD = FLASH3,
                            RUN = RAMD0,
                            LOAD_START(RamfuncsLoadStart),
                            LOAD_SIZE(RamfuncsLoadSize),
                            LOAD_END(RamfuncsLoadEnd),
                            RUN_START(RamfuncsRunStart),
                            RUN_SIZE(RamfuncsRunSize),
                            RUN_END(RamfuncsRunEnd),
                            ALIGN(8)
       #else
           .TI.ramfunc : {} LOAD = FLASH3,
                            RUN = RAMD0,
                            LOAD_START(_RamfuncsLoadStart),
                            LOAD_SIZE(_RamfuncsLoadSize),
                            LOAD_END(_RamfuncsLoadEnd),
                            RUN_START(_RamfuncsRunStart),
                            RUN_SIZE(_RamfuncsRunSize),
                            RUN_END(_RamfuncsRunEnd),
                            ALIGN(8)
       #endif
    

    谢谢、此致、

    乔治

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

    谢谢! 这解决了问题。 我已经阅读了相关文档以及有关此问题的信息、但它没有"点击"。 )