我一直在尝试构建示例 sky-shell,但未能成功。我已经尝试过 contiki-2.6 和 contiki-2.7。我曾认为这可能是编译器本身效率低下或其他原因,所以在尝试 contiki-2.7 时,我确保尝试了 msp430-4.5.3、4.6.3 和 4.7.0(使用这个论坛问题的答案来切换 mspgcc 版本:https ://askubuntu.com/questions/187253/how-to-update-a-package-from-command-line-gcc-compiler )。这些似乎都没有帮助。我也尝试使用“SMALL=0”进行编译,但这似乎只会增加溢出。
然后我尝试注释掉 sky-upload.c 中的任何代码(例如 shell_netfile_init()、shell_rim_init() 和 shell_rim_netcmd_init())。这似乎减少了编译,使其能够通过编译溢出,但现在它说它在函数 vuprintf 中缺少对 __udivmodsi4 的引用。我尝试研究这个问题,似乎我可能以某种方式使用不同版本的 gcc 进行部分编译,而不是我目前认为的(论坛帖子:http: //sourceforge.net/p/mspgcc/mailman/mspgcc-用户/线程/D45E6EE7-2771-41EC-9999-F773C6B22AA4@imag.fr/ )
我觉得这个例子应该在上面提到的 init() 调用都没有注释掉的情况下工作。似乎最终使示例按预期工作(即通过无线方式将 ELF 文件发送到微尘,然后加载它们)我不能将上面提到的 init() 调用注释掉,并且可能需要更多代码示例中提供的内容的顶部。
我意识到这里有两个主要问题,通常一篇文章一次只处理一个,但由于它们混淆在一起,我认为最好同时发布这两个问题(溢出和缺失的引用)。
有谁知道这里可能出了什么问题?当涉及到所有关于 contiki 的事情时,我是一个新手,所以请尽可能添加额外的解释:)。
谢谢