【发布时间】:2014-11-05 12:31:42
【问题描述】:
我目前正在尝试在 Contiki 中为 tmote sky 平台使用以下命令编译程序:
1) "make sky-shell-exec.sky TARGET=sky"
2) "使 sky-shell-exec.sky CORE=sky-shell-exec.sky TARGET=sky"
我知道第一个命令有效,但第二个错误如下:
“contiki-sky.a(symbols.o):(.rodata+0x1f00): relocation truncated to fit: R_MSP430_16_BYTE 反对在 sky-shell-exec.sky 的 ABS 部分定义的符号 '_efartext'
contiki-sky.a(symbols.o):(.rodata+0x1f1c):重定位被截断以适应:R_MSP430_16_BYTE 反对在 sky-shell-exec.sky 的 .vectors 部分中定义的符号 '_vectors_end'
我的 msp430-gcc 版本是 4.7.0 20120322 (mspgcc dev 20120716)。
我试着环顾四周,但在任何地方都没有发现这个错误。
我假设这意味着我的符号表空间不足,我应该压缩代码。我已经尝试过这样做,并且现在我无法再减少代码库了。我这样想对吗?
有谁知道这意味着什么以及可能的解决方法?
谢谢!
【问题讨论】:
-
我已经尝试在 Makefile.msp430 的第 132 行去掉 -g 选项,就像在这个修复中一样:sourceforge.net/p/contiki/mailman/contiki-developers/thread/… 但是,这并没有帮助。
-
与 Contiki 无关:在我的项目中遇到了这个问题,并使用选项 -gdwarf-3 而不是 -ggdb 解决了。
标签: c compilation msp430 contiki