您好!
我的开发代码、调试代码以及 sprintf 变得过大、因此我得到以下错误:
msp430-elf-gcc -T /home/summers/msp430/include/msp430f5529.ld -L /home/summers/msp430/include -mmcu=MSP430F5529 -Wl,--gc-sections gcc/sinlookupuart2048.o -o gcc/sinlookupuart2048.out /home/summers/msp430/lib/gcc/msp430-elf/13.2.0/../../../../msp430-elf/bin/ld: error: final size of uleb128 value at offset 0x71b in .debug_loclists from /home/summers/msp430/lib/gcc/msp430-elf/13.2.0/../../../../msp430-elf/lib/libc.a(libc_a-vfiprintf.o) exceeds available space很明显、字符串打印占用了太多的空间(我的十六进制文件现在是89KB)。 我可以更正错误、只需手动写入字符串、而不使用 sprintf、然后十六进制文件会降至6KB。
我检查了使用的 c lib 以及它的 newlib c;现在对于某些器件(例如 ARM)、您可以启用能够生成更小 sprintf 的纳米规格。
在 MSP430环境中尝试过这样做、运气不好-看起来 MSP430 newlib c 并不属于通过规格进行选择的微型变体。 我缺少什么吗?
在 MSP430开发环境中、有没有任何更小的格式化 print 语句选项?