环境搭建及开发流程(官网翻译Get Started)

来源:互联网 发布:下载配色软件 编辑:程序博客网 时间:2024/05/16 01:28

推荐官网:http://www.contiki-os.org/

在官网的Get Started页面下,有关于instant contiki的介绍和安装过程,如果英文不是太差,可以进去看原版。

下面是全文翻译(截图参见官网)

一、安装Instant Contiki

1、关于Instant Contiki

Instant Contiki是一个完整的Contiki开发环境。它就是一款运行在VMWare player上的Ubuntu Linux虚拟机,并且拥有Contiki和所有开发该Contiki系统的开发工具、编译器和仿真器。

Instant Contiki如此方便以至于Contiki开发的中坚分子都使用它。

我们就从下载Instant Contiki、安装VMWare Player和启动Instant Contiki开始。

2、下载Instant Contiki

这是一个超过1GB的大文件,在下载时请勿解压。(建议用下载工具)

下载页面:http://sourceforge.net/projects/contiki/files/Instant%20Contiki/

3、安装VMWare Player

下载和安装VMWare Player。它是免费下载但需要注册,要让它的网络正常工作,或许需要重启计算机。

下载页面:https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/7_0

4、运行Instant Contiki

a)启动Ubuntu

通过运行InstantContiki2.6.vmx来启动Instant Contiki。等待虚拟Ubuntu Linux的启动。

b)登陆

登录Instant Contiki 系统,密码是user。

二、开始Cooja

1、关于Cooja

Cooja是Contiki网络模拟器。它可以仿真大型和小型contiki模型(motes 暂译为模型)的网络。这些模型可以做硬件级的模拟,虽然慢但可以详细检查系统行为;也可以在一个相对不是很详细的仿真,这样速度可以更快,也更适合大型网络。

2、打开终端窗口

运行Cooja,首先要打开一个终端命令窗口。

3、开始Cooja

在命令窗口,进入Cooja目录:

cd contiki/tools/cooja

用下面的命令运行Cooja:

ant run

4、等待Cooja的启动

首次启动,它首先要编译自身,这需要一些时间。

当Cooja完成编译,会显示一个蓝色的空窗口,这表明Cooja启动并运行了,我们可以尝试一个仿真例程。

三、仿真运行Contiki

1、关于Cooja仿真

Cooja是一款非常好用的Contiki开发工具,允许开发者在进行硬件移植前进行代码和系统的测试。开发者可以建立新的仿真去调试软件程序,检查系统的运行。

2、创建新的仿真

a)创建新的仿真

点击File菜单下的New simulation

b)设置仿真选项

Cooja会打开Create new simulation对话框。我们要输入进行仿真的名称

c)Simulatioin窗口

Cooja开始新的仿真。network子窗口展示仿真网络中的所有模型,一开始它是空的,因为在我们的仿真中还没有模型。Timeline子窗口展示了仿真中的所有通信时间,非常方便我们理解网络中所进行的事务。Mote output子窗口展示了所有模型的串口输出。Notes子窗口我们可以对仿真进行记录。Simulation control子窗口可以对仿真进行控制,如开始、暂停和重载等。

3、添加仿真模型

a)添加模型

在开始仿真之前,我们必须添加一个或多个模型。在Motes菜单的Add motes。在第一次添加模型时,我们必须创建一个模型类型,点击Create new mote type,选择一种可用的模型类型。在该例子中,我们选择Sky mote创建一个Tmote Sky仿真模型类型。

b)创建一个新的模型类型

Cooja打开Create Mote Type对话框,为我们的模型类型及其所要运行的Contiki应用取名。

c)寻找Contiki application例程

可以在/home/user/contiki/examples/ipv6/simple-udp-rpl目录下找到大量的Contiki应用,这些应用向我们展示了如何基于IPv6如何进行简单UDP通信。

d)应用程序的C源文件说明

选择broadcast-example.c文件,该文件包括了一个简单的Contiki应用,随机向邻居广播UDP包。点击Open选择该文件。

e)编译Contiki和应用

现在,Cooja将在我们所选择的平台上编译我们选择的Contiki 应用。点击Compile按钮,首次编译会花费至少一分钟的时间。编译输出将展示在窗口底部的白色面板中。

f)创建模型类型

点击Create按钮创建模型类型,窗口将会关闭。

g)添加仿真模型

Cooja会询问我们是否想从新创建的模型类型中添加模型进行仿真。我们在Number of motes 中改变模型的编号为8来进行添加。8

h)添加模型

点击Add motes按钮来添加模型进行仿真。

i)开始仿真

现在我们可以在Network子窗口看到八个我们所添加的模型。点击Start按钮开始仿真。

j)暂停仿真

我们从Mote output子窗口看到仿真模型的输出。Network子窗口展示了网络间的通信情况;Timeline子窗口展示了随时间的通信和无线收发机事件,灰色线条表示ContikiMAC周期性的唤醒无线收发机。点击Pause按钮暂停仿真。

4、完成

现在我们已经创建了基于Contiki节点的第一个Cooja仿真,使用ContikiMAC休眠路由器的功能进行周期性发送IPv6/UDP数据包的仿真(send periodic IPv6/UDP packets with ContikiMAC sleepy router functionaliy)。

四、在硬件上运行Contiki

1、关于Contiki硬件

Contiki拥有一套生成系统,可以让Contiki直接在硬件上运行变得容易。为了转换平台时,开发者对于生成命令仍然熟悉,该生成系统可以兼容不同的硬件平台。该系统由一套makefiles(编译文件)文件组成。基本的编译文件是contiki/Makefile.include,平台编译文件是contiki/platform/*/Makefile.platform 和contiki/cpu/*/Makefile.cpu。

2、连接硬件

在该例程中,我们假设有一个Zolertia Z1模型连接到PCUSB端口。为了Instant Contiki能够和该硬件通信,我们首先需要在Instant Contiki中使能该Z1。这是通过VMWare Player中的Virtual Machine菜单,然后是Removable Devices菜单。

3、打开一个终端,到代码目录

打开一个终端窗口,切换到Hello world例程目录

cd contiki/examples/hello-world

4、编译Contiki和应用程序

为硬件平台编译Hello World应用。这会编译整个Contiki系统,需要花费一些时间。

make TARGET=z1 hello-world

如果打算在选择的平台上进行多次编译,可以让Contiki记下所选硬件:

make TARGET=z1 savetarget

5、下载Contiki到硬件

现在,可以下载编译好的代码到硬件了:

make hello-world.upload

6、注意:

如果看到这样的输出信息,表明Z1没有连接到instant contiki

make z1-reset z1-upload

        make[1]: Entering directory `/home/user/contiki/examples/hello-world'

        make -k -j 20 z1-reset-sequence

        make[2]: Entering directory `/home/user/contiki/examples/hello-world'

        Done

        make[2]: Leaving directory `/home/user/contiki/examples/hello-world'

        make -j 20 z1-upload-sequence

        make[2]: Entering directory `/home/user/contiki/examples/hello-world'

        Done

        make[2]: Leaving directory `/home/user/contiki/examples/hello-world'

        make[1]: Leaving directory `/home/user/contiki/examples/hello-world'

        rm hello-world.ihex

此时,检查和PC以及虚拟机的连接,重试。

 

注意到,我们本来可以用一个步骤完成编译和下载:make hello-world.upload target ,这样在下载到硬件之前,会自动完成应用和Contiki的编译。

7、查看输出

现在已经把代码烧录到硬件设备,我们可以通过串口检查程序的输出。我们运行下面的命令,可以看到我们所连接模型的串口输出。

make login

这样并不会看到任何输出,因为Hello World程序已经运行完毕了。为了去看到输出,按下mote上的复位键。会有以下的输出信息:

Rime started with address 1.1

       MAC 01:01:00:00:00:00:00:00 Contiki-2.6 started. Node id is set to 257.

       CSMA ContikiMAC, channel check rate 8 Hz, radio channel 26

       Starting 'Hello world process'

       Hello, world

 

至此,已经完成了Contiki的仿真和硬件上的运行。

我们可以再仿真和烧录contiki/examples/ipv6/simple-udp-rpl/目录下的broadcast-example 程序,这需要两台硬件设备,它们相互发送低功耗无线IPv6/UDP消息。

2 0
原创粉丝点击