Part Number:MSPM0G3507
MEMORY
{FLASH(RX) : origin = 0x00000000, length = 0x00008000SRAM(RWX) : origin = 0x20200000, length = 0x00004000BCR_CONFIG(R): origin = 0x41C00000, length = 0x000000FFBSL_CONFIG(R): origin = 0x41C00100, length = 0x00000080
}
SECTIONS
{.intvecs:> 0x00000000.text: palign(8) {} > FLASH.const : palign(8) {} > FLASH.cinit : palign(8) {} > FLASH.pinit : palign(8) {} > FLASH.rodata : palign(8) {} > FLASH.ARM.exidx: palign(8) {} > FLASH.init_array: palign(8) {} > FLASH.binit: palign(8) {} > FLASH.TI.ramfunc: load = FLASH, palign(8), run=SRAM, table(BINIT).vtable :> SRAM.args:> SRAM.data:> SRAM.bss:> SRAM.sysmem :> SRAM.stack :> SRAM (HIGH).BCRConfig : {} > BCR_CONFIG.BSLConfig : {} > BSL_CONFIG
}
这是device_link.cmd文件的内存分布,根据报错信息 #10099-D: 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, or the section contains padded functions. run placement with alignment fails for section ".data" size 0xeaac. Available memory ranges:。应该需要增大.data存储的空间,即SRAM,但是我在device_link.cmd文件中把length修改为0x00040000后,再次build发现文件恢复到了我修改前。请问应该如何解决呢
Eirwen:
已经收到了您的案例,调查需要些时间,感谢您的耐心等待。
,
Daniel:
您好
根据您的报错您应该存放数据超过预定范围,在优化过程,请注意如下帖子说明的问题。
e2e.ti.com/…/5566697
,
Enqi Shi:
我可否将.data放在除了SRAM以外的空间呢,并且如果是显示.text超过预定范围了是不是可以通过调整内存地址来解决,直接修改device_link.cmd文件吗
,
Enqi Shi:
那我可以将.data同时放在其他位置吗。并且如果报错.text超过内存预定范围,是不是可以通过修改FLASH的地址范围来解决,直接在device_link.cmd文件修改吗
,
Daniel:
您好
如果您的数据超过相关内存范围,建议优化数据来解决问题,如果按照您的方式可能在编程过程中比较麻烦,且出现中断情况下可能造成数据丢失的后果。
,
Enqi Shi:
好的非常感谢您的解答,我先优化数据。我还想问一下如果.text报错,这个恐怕没法优化代码来解决,此时应该怎么办呢。是在device_link.cmd文件中将FLASH的地址范围增大吗
,
Daniel:
您好
之前的问题,是否已经厘清,如果厘清,那么新的问题请重新发帖。
TI中文支持网

