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.

[参考译文] TMS320F2800157-Q1:程序将无法放入可用内存中、或者该段包含一个调用点、该调用点需要一个可以为此段生成的 trampoline #39;t

Guru**** 2549170 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1417970/tms320f2800157-q1-program-will-not-fit-into-available-memory-or-the-section-contains-a-call-site-that-requires-a-trampoline-that-can-t-be-generated-for-this-section

器件型号:TMS320F2800157-Q1

工具与软件:

针对 f2800157 Launchpad 电路板进行编译时出现以下错误。

"../280015x_generic_ram_lnk.cmd"、第48行:错误#10099-D:程序将无法装入可用存储器、或该段包含一个调用站点、该调用站点需要无法为此段生成蹦床函数。 针对段".text"大小0x540c 第0页的对齐/分块放置失败。 可用存储器范围:
RAMLS0大小:0x2000未使用:0x1最大空洞:0x1
RAMLS1大小:0x1ff8未使用:0x0最大空洞:0x0
"../280015x_generic_ram_lnk.cmd"、第51行:错误#10099-D:程序将无法装入可用存储器、或该段包含一个调用站点、该调用站点需要无法为此段生成蹦床函数。 对".cinit"大小为0x62页0的段进行对齐/分块放置失败。 可用存储器范围:
RAMLS0大小:0x2000未使用:0x1最大空洞:0x1
RAMLS1大小:0x1ff8未使用:0x0最大空洞:0x0
错误#10010:链接过程中遇到错误;未构建"freertos_ex1_c28x_led_blinky.out"

代码的.cmd 段部分看起来像这样

部分中)

codestart :>开始
.TI.ramfunc:> RAMM0

//. text :>> FLASHA | FLASHB
//.text :>> FLASHA | FLASHC | FLASHD, PAGE = 0
//.text :>> RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4、PAGE = 0
//.text:>> FLASH_BANK0_SEC0| FLASH_BANK0_SEC1|FLASH_BANK0_SEC2|FLASH_BANK0_SEC3|FLASH_BANK0_SEC4、PAGE = 0
.text :>> RAMLS0 | RAMLS1.

//注释掉
.cinit :> RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4、PAGE = 0
//. cinit :> FLASHA | FLASHC | FLASHD, PAGE = 0
//. cinit :>> RAMLS6, page =1
//.cinit :> RAMM0


.switch :> RAMM0
.reset :> RESET , TYPE = DSECT /* NOT USED ,*/

.stack :> RAMM1.

#if defined (_TI_EABI__)
.bss :> RAMLS0
.bss:output :> RAMLS0
.init_array :> RAMM0
.const :> RAMLS0
.data :> RAMLS0
.sysmem :> RAMLS0
bss:cio :> RAMLS0
#else
.pinit :> RAMM0
.ebss :> RAMLS0

//.econst :> RAMLS6, page = 1.
//.econst :>>RAMGS0|RAMGS1| RAMGS2, page = 1.
.econst :> RAMLS0

//.esysmem :> RAMLS7, page = 1.
.esysmem :> RAMLS0

.cio :> RAMLS0
#endif

我究竟可以执行什么操作来修复此错误?

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

    Eric、您好!

    根据错误、LS 存储器几乎已满、并且无法容纳 RAMLS 中的更多数据。 此外、f280015仅具有 RAMLS0和 LS1。

    您可以将 cinit 段放在 RAMM0位置并尝试。

    谢谢

    Aswin