Contiki,MSP430:重定位被截断以适应符号错误

时间:2014-11-05 12:31:42

标签: c compilation msp430 contiki

我目前正在尝试使用Contiki中的以下命令为tmote sky平台编译程序:

1)“make sky-shell-exec.sky TARGET = sky”

2)“make sky-shell-exec.sky CORE = sky-shell-exec.sky TARGET = sky”

我得到第一个命令有效但第二个错误出现以下内容:

“contiki-sky.a(symbols.o):(。rodata + 0x1f00):重定位被截断以适合:R_MSP430_16_BYTE对抗sky-shell-exec.sky中ABS部分中定义的符号'_efartext'

contiki-sky.a(symbols.o):(。rodata + 0x1f1c):重定位被截断以适合:R_MSP430_16_BYTE对抗天空中的.vectors部分中定义的符号'_vectors_end'“

我的msp430-gcc版本是4.7.0 20120322(mspgcc dev 20120716)。

我试着环顾四周,但在任何地方都没有发现这个错误。

我认为这意味着我的符号表空间不足,我应该压缩代码。我试过这样做,我不能再减少代码库了。我是否正确地想到了这一点?

有谁知道这意味着什么,可能还有解决方法?

谢谢!

2 个答案:

答案 0 :(得分:1)

事实证明,我的错误比我的工作代码库更具体。我使用的是带有msp430-gcc 4.7.0的contiki 2.6的修改版本。我有一个带有即时contiki 2.7的虚拟机,然后在同一个虚拟机上分支修改后的contiki 2.6。 msp430-gcc 4.7.0适用于contiki 2.7但是当我去contiki 2.6的分支上工作时,一切都破了。最好的猜测问题是由两个代码库之间的Makefile.include的差异引起的。我假设contiki 2.6不是为msp430-gcc 4.7.0而构建的。因此,为了研究2.6,我目前正在切换到msp430-gcc 4.5.3并为contiki 2.6创建一个完全独立的VM,这似乎到目前为止工作......虽然在sky-shell-exec示例中存在一些问题。所以我可能最终会使用msp430-gcc 4.6.3。

答案 1 :(得分:0)

我没有处理过这个平台,但是首先没有调试配置。接下来可以检查链接器文件。