大家好、团队、
我代表我的客户发布。
我正面临此错误... 请帮我纠正这个错误
#10099-D 程序不能放入可用存储器中、或者该段包含需要无法为此段生成的 trampoline 的调用站点。 对".ebss"大小为0x61a9c 第1页运行定位/分块失败。 可用存储器范围:2837x_flash_lnk_cpu1.cmd /Project line 114 C/C++ problem
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.
大家好、团队、
我代表我的客户发布。
我正面临此错误... 请帮我纠正这个错误
#10099-D 程序不能放入可用存储器中、或者该段包含需要无法为此段生成的 trampoline 的调用站点。 对".ebss"大小为0x61a9c 第1页运行定位/分块失败。 可用存储器范围:2837x_flash_lnk_cpu1.cmd /Project line 114 C/C++ problem
Renan、您好!
当您增大全局变量大小时、它不能放入段中
请查看 2837x_flash_lnk_cpu1.cmd、并查找.ebss 段。 您需要按照错误消息中的建议增大大小。 此链接解释了链接器命令文件的详细信息
https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
如下所示。
Renan、
请告诉客户参考此链接以了解更多详细信息:
此致、Santosh
Renan、
请查看控制台日志中的确切错误。 它将显示所需的量、以及所拥有的量、然后您可以相应地进行计算。
[引用 userid="392209" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1175535/tms320f28379d-program-will-not-fit-into-available-memory/4424068 #4424068"].ebss :>>[/报价]不知道为什么需要这么大的数组。 您只是在试验中、还是在应用中需要它? 您有13个浮点数数组、每个数组有2000个元素。 因此您需要:
13 * 2000 * 4字节=仅此数组为104KB。
您可能需要将其存储在闪存中、如下所示。 您将需要至少4个闪存扇区。
您好 Santosh、
请参阅我的客户的回复:
很抱歉耽误你的回答。
我的应用需要这些变量。 需要一个大小为4000的变量来存储 ADC 采样数据。
将在闪存初始化位置添加以下行。 大小为(48000字节)的闪存
.ebss:>> FLASHE |FLASHH | FLASHG| FLASHI | FLASHJ PAGE = 0
仍然会发生错误。
说明资源路径位置类型
#10099-D 程序不能放入可用存储器中、或者该段包含需要无法为此段生成的 trampoline 的调用站点。 ".ebss"大小为0x1084页1的运行定位/分块失败。 可用存储器范围:2837x_flash_lnk_cpu1.cmd /Project line 115 C/C++ problem
非常感谢您的帮助。
此致、
Renan
Renan、
具有一个可变的0f 4000大小是可以管理的。 因为它用于采样 ADC 缓冲器、所以它必须放置在 RAM 中。 创建一个单独的段并使用#pragma DATA_SECTION ()将变量放置在该段中。
您需要一些背景。 请阅读文章 链接器命令文件入门的第一部分。 清楚地了解 输入段 是如何来自目标文件的、如何组合到 输出段中、以及如何将这些输出段分配到 存储器范围。
DATA_SECTION pragma 指示编译器将哪个输入段用于特定全局或静态变量。
此致、Santosh