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**** 2611705 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/690878/compiler-tms320f28377d-i-have-a-question-about-memory-placement-in-the-section

器件型号:TMS320F28377D

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

您好!

在下面链接的文档的第8.5节中、我看到了一些有关"自动分区"和"自动分区"的说明。

描述中用于示例的部分是".text"部分。

仅在初始化段时才可以对段进行"自动分配"或"自动拆分"?

不能将自动段分配或自动段拆分用于未初始化的段(例如:.ebss)?

提前感谢。

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

    允许对未初始化的段进行自动段拆分。   

    谢谢、此致、

    乔治

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

    感谢您的回答。 我还有一个问题。


    我将自动段拆分函数应用于.ebss 段并继续编译、但发生了错误。

    "或"所包围的各种存储器区域的总和大于.ebss 段所需的大小、但出现错误、无法放置该段。

    在我的项目中、有许多长数组。

    特定数据单元(如长数组)是否不支持拆分?

    提前感谢。

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

    [引用 user="nam、Sang-il"]

    在我的项目中、有许多长数组。

    特定数据单元(如长数组)是否不支持拆分?

    [/报价]

    是的。  但有一种方法可以解决它。

    输出段的拆分始终发生在输入段边界上。  单个文件中的所有数组都在一个输入段中、因此无法拆分。  如果输入段的长度超过所有可用存储器范围的长度、则分配会失败。

    请考虑使用选项--gen_data_subsections=on 进行构建。  这会将每个数组放在其自己的子段中。  实际上、这会将原始输入段拆分为几个较小的输入段。  我无法保证这可以解决问题。  但值得一试。   

    谢谢、此致、

    乔治

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

    感谢您的回复。