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/MSP430F5438A:EABI和传统Coff

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/606449/ccs-msp430f5438a-eabi-and-legacy-coff

部件号:MSP430F5438A

工具/软件:Code Composer Studio

您好,
我正在尝试使用MSP430F5438A构建程序。 使用eabi选项构建时,使用的内存为Flash1+Flash 2=44.63k;使用Legacy Coff选项构建时,使用的内存为Flash1+Flash 2=40k。  所以基本上,256k的整个内存都不是使用这两个选项。 但是,当我使用eabi选项构建程序时,我收到以下错误,并且无法调试程序。

说明资源路径位置类型
#1.001万链接时出错;“22tr 5438 chk.out”未构建22tr 5438 chk C/C++问题
#1.0099万-D程序将无法插入可用内存。对“.cinit”大小0x2b的区域进行定位失败。 可用内存范围:lnk_msp430f5438a.cmd /22tr 5438 chk line 148 C/C++问题

请帮助我了解为什么会发生这种情况,因为如果我遇到上述错误,我无法预测程序的确切内存要求。

谢谢。

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

     用于MSP430F5438A的链接器命令文件是 lnk_msp430f5438a.cmd,位于类似的位置...

    C:\ti\ccsv7\CCS_base\MSP430\include 

    从该文件中,我可以看到.cinit段被分配到闪存范围。  闪存范围为0xA380字节,刚好低于41K。  所以这就是为什么所有东西都适合用COFF ABI构建,而用EABI构建时,它有点太大了。  

    要更好地理解链接器命令文件,请参阅文章 链接器命令文件入门。  

    要更好地理解此诊断...

    #1.0099万-D程序将不适合可用内存。对齐部分".cinit"

    的放置失败

    请确保您看到整个诊断,而不仅仅是它的这个截断部分。  通过查看控制台视图中的所有生成输出来执行此操作。  然后在文章 Compiler/diagnostic messages/1.0099万中阅读有关它的更多信息。

    谢谢,此致,

    -George

x 出现错误。请重试或与管理员联系。