如何在Contiki操作系统中增加sky mote的ROM大小,cooja模拟



我想在Cooja模拟中使用sky mote,这样我就可以访问收集视图工具的全部功能,如功率读数。

然而,我不得不为我的项目移植额外的库,所以程序的大小远远超过了天空尘埃提供的内存。

Cooja mote可以支持程序大小,因为它使用本地系统,但它不会在收集视图中为我提供电源读数。

如何增加ROM&在不失去功率测量能力的情况下,用于库贾模拟的天空尘埃RAM大小。如有任何帮助,我们将不胜感激。

这个答案可能有些晚了,但我仍然希望它能帮助任何人在这里挖掘。

如果您使用的是msp430 gcc和contiki ng项目(可能与旧版本的contiki相似,我不确定),则通过设置MCU=msp430f1611contiki-ng/arch/platform/sky/Makefile.common的第20行定义MCU模型。该模型的链接脚本可以在您安装的msp430mcu包的msp430/lib/ldscripts/msp430f1611/memory.x中找到。

因此,您将在文件中看到模型的内存映射,rom区域从0x4000开始,到0xffe0结束,长度约为40KiB。

您只需将Makefile.common中的MCU型号更改为msp430f169即可获得约60KiB的ROM,服务器的RAM将缩小到2KiB。或者,你可以将记忆映射更改为你喜欢的任何内容。

不幸的是,由于msp430是一个16位MCU,使用内部存储器,您永远不会获得超过64KiB的内存地址,即即使没有中断矢量和外围设备,ROM和RAM的总容量也永远不会超过64KiB。

此外,正如Johan Bregell所说,你还需要修改mspsim中的代码,使cooja适应新的内存布局。您可能最感兴趣的是设置地址的tools/cooja/mspsim/se/sics/mspsim/config和设置CC2420芯片型号的cooja/mspsim/se/sics/mspsim/platform/sky/CC2420Node.java

最简单的选择是使用另一个远程而不是sky(48 kb ROM)。Contiki支持更多的msp430架构,如Zolertia Z1(96kb ROM)和Wismote(高达256kb ROM)。

Sky mote运行的MCU的定义位于文件夹contiki/tools/mpsim/se/sics/mpsim/中。如果您熟悉Java,您应该能够修改MCU的可用内存量。

最新更新