看了一些CONTIKI的SHELL文档,能得出一些概念性的思维。
我是从CONTIKI 3.0开始学习的,2.5版本,2.7版本就没有了解过。在CONTIKI 3.0中,好像有三种版本的SHELL。
第1种:是全功能版本的SHELL,主要用于LINUX本机系统的调试,至少在\contiki-3.0\tools\cooja里面,有个仿真
器COOJA要用到吧。
第2种:是做精简的SHELL,尝试在节点上的CPU跑SHELL,芯片的ROM和RAM是有一定要求的,不然会报错的。
第3种:是极度精简的SHELL,有一些少量的功能,可以说SHELL不再是SHELL了,对节点资源仍是有一定要求的。
可以看出,在资源受限的芯片上,作者是费尽心思,去实现SELL功能。C语言是现场开发用的语言,在很多情况下,
我们会感到CONTIKI3.0版本或 2.7版本的文件结构有点乱、功能含义分类不清楚等等,这就比较正常了。。。
所以,就出现我们现在学习的CONTIKI-NG版本,官方译为下一代IOT无线传感器操作系统,非常简洁,是一种美!
在NG版本,作者改写了SHELL,SHELL不在是系统的外壳程序,只是NG的功能模块,位于/os/services/shell 文件夹中,在LINUX应用方法为:
---》在项目中的Makefile增加:MODULES += os/services/shell。把模块代码加载到应用中。
---》在LINUX中,打开超级终端_>$ make login PORT=/dev/ttyACM0 BOARD=launchpad/cc2650 TARGET=srf06-cc26xx
资料文档用的CC2650芯片,该资源为ROM:128K,RAM:20K
---》在超级终端的命令行:
> help
> ip-addr
可以输出一些SHELL信息。
看来大部份操作都是在LINUX下完成的,我在IAR system玩NG系统,有的LINUX的特性就不好实现了,觉得还是跳过SHELL算了。
如make login 在IAR都不知道怎么办了,哈哈 隔系统如隔山。。。。搞开发还是在LINUX下才是王道!!