我目前正在尝试使用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)。
我试着环顾四周,但在任何地方都没有发现这个错误。
我认为这意味着我的符号表空间不足,我应该压缩代码。我试过这样做,我不能再减少代码库了。我是否正确地想到了这一点?
有谁知道这意味着什么,可能还有解决方法?
谢谢!
答案 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)
我没有处理过这个平台,但是首先没有调试配置。接下来可以检查链接器文件。