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.

[参考译文] 编译器/TMS320F28377D:。

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/952942/compiler-tms320f28377d

器件型号:TMS320F28377D

工具/软件:TI C/C++编译器

我仍在处理 https://e2e.ti.com/support/tools/ccs/f/81/t/768585中描述的同一个基本问题、 我想检查并查看建议是否已更改或是否已解决。

我需要一种方法来将特定输出段放置在给定存储器范围的最后。 我最近遇到了一个问题、即我们需要此属性的段碰巧是最后一个、但一旦我们增大其大小、链接器就决定将其放置在略小的段之前。 使用 HIGH 说明符也不能满足我们的要求、因为无论我们是否实际需要它、它都需要使用该区域中的所有空间。 突然的排序变化是一个意外的结果、这是因为它与 GNU 连接器不同、GNU 连接器将按照输出段默认显示的顺序放置输出段; 我认为这篇文章最初是在考虑到这种行为的情况下编写的、而最初的作者碰巧很幸运、"必须是最后的"部分也是最小的、但这不是一个保证。

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

    我们不提供...

    [引用 user="Christopher Copeland "]将特定输出段放在给定存储器范围内的最后位置的方法。

    但这不是在旧论坛主题中讨论的请求。  在该线程中,请求被声明...

    我的总体目标是在给定存储器区域中的所有段的末尾放置一个符号(在本例中是与所有闪存组相对应的存储器区域)。

    我们确实有一个解决该请求的解决方案。  它在编译器版本20.2.0.LTS 中引入。  在链接器命令文件的 MEMORY 指令中、可以将符号与存储器范围中使用的最后地址相关联。  例如...

    闪存:origin = 0x0FE000,length = 0x002000,lAST (_symbol_name_here) 

    有关更多详细信息、请在 《C28x 汇编工具手册》 中搜索标题 为"最后一个运算符"的子章节。

    此新功能是否可以解决您的问题?

    谢谢、此致、

    乔治

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

    我认为这种情况接近但并不完全解决我的问题... 我需要放置在末尾的符号具有实际内容、而不仅仅是链接器定义的地址。 我需要在结尾放置的符号的定义已经在翻译单元中、我只需要强制将其放置在结尾 上一篇文章是我尝试解决此问题的一种方法、它将该符号放置在组中最后的一个段中、 但是、一个组中的所有段都具有完全相同的放置属性(而不仅仅是具有相同的加载地址)的限制会影响到这种情况。

    如果我使用最后一个(_symbol)方法、我还可以在翻译单元中定义它并使其具有实际数据吗? 我能否相对于我指定的任何符号定义其他符号? 符号将放置在哪个段中?

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

    [引用用户="Christopher Copeland "]如果使用最后一种(_symbol)方法,我还可以在翻译单元中定义这种方法,并使其具有实际数据吗?

    [引用 user="Christopher Copeland "]我能否定义与我指定的任何符号相关的其他符号?

    [引用用户="Christopher Copeland "]哪个部分会放置_symbol?

    最后指定的符号没有关联段。  它是一个绝对符号。  您的代码可以引用此符号。  但是、您不能对符号所代表的存储器地址的内容进行任何推定。

    关于这个问题...

    [引用用户="Christopher Copeland "]我需要在结尾放置的符号的定义已经在翻译单元中,我只需要强制将其放在结尾处即可[/引用]

    我已详细考虑过这个问题。  到目前为止、我已经清空了。  不幸的是、我认为没有办法做到这一点。

    谢谢、此致、

    乔治

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