DSP报错#10099-D</a> program will not fit into available memory,
解决步骤:1.在CCS菜单栏View中的Memory Allocation来查看flash中内存占用的大小。3.保存2839Xs_FLASH_lnk.cmd的修改,再次编译 ,问题解决。2.然后修改2839Xs_FLASH_lnk.cmd 中的 FLASHC。给FLASHC扩充1000byte。可以看到FLASHC已经快占满了。
·
#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. placement with alignment/blocking fails for section ".switch" size 0x564 page 0. Available memory ranges:
2837xS_FLASH_lnk.cmd
错误解释:
#10099-D
: TI 编译器的链接器诊断代码。program will not fit into available memory
: 这是问题的核心。你的整个程序(代码、数据、堆栈等)的大小超过了你正在使用的微控制器 (2837xS) 的总内存容量。or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails for section ".switch" size 0x564 page 0.
:section ".switch"
:.switch
是一个特定的链接器节 (section)。它通常包含了switch
语句的跳转表 (jump table)。当你的代码中有switch
语句时,编译器会生成一个表,用来快速查找根据switch
变量的值应该跳转到哪个代码位置。size 0x564
: 这个.switch
节需要 0x564 字节(十六进制)的内存空间。page 0
: 指明了这个节需要被放置在内存的第 0 页。placement with alignment/blocking fails for section ".switch"
: 链接器尝试将这个.switch
节放置到内存的某个区域,但由于内存碎片、对齐要求或者内存范围的限制,导致它无法成功放置。program will not fit into available memory
: 这部分原因可能是由.switch
节无法放置引起的,也可能是整个程序整体过大,包含了.switch
节在内的所有节都无法安排进有限的内存。
Available memory ranges:
: 这一部分 原本应该列出 你的设备可用内存的各个区域(例如,FLASH, RAM),但在这里信息不完整,只显示了“Available memory ranges:”。这可能意味着链接器在尝试分配时遇到了问题。2837xS_FLASH_lnk.cmd
: 这是你的链接器命令文件 (.cmd
文件)。
解决步骤:1.在CCS菜单栏View中的Memory Allocation来查看flash中内存占用的大小。
可以看到FLASHC已经快占满了
2.然后修改2839Xs_FLASH_lnk.cmd 中的 FLASHC
给FLASHC扩充1000byte
3.保存2839Xs_FLASH_lnk.cmd的修改,再次编译 ,问题解决。
更多推荐
所有评论(0)