Contiki基础之一

参考文档:

  • Contiki 2.6 官方文档

  • 官方网站

  • Github上的Contiki的wiki

  • Contiki创作者及一些文档

1.build system

主要参考和翻译The Contiki build system & /contiki/examples/hello-world/

203024938.png

make命令不带任何参数,默认编译的目标平台是"native",即开发环境,可以直接在本地运行,如下:

$make
$./hello-world.native

203348621.png

Ctrl+C退出。

针对特定的开发平台,如sky、micaz、ESB等,以sky平台为例:

$make TARGET=sky

产生"hello-world.sky"文件。

如果将hello-world编译为一个可以加载进正在运行的contiki系统的独立的可执行文件,则需要

$make TARGET=sky hello-wold.ce

如果要设置默认的编译平台而不用每次添加参数TARGET,则使用命令:

$make TARGET=sky savetarget

并会产生一个"Makefile.target"文件。

204428901.png

删除编译产生的文件,使用命令:

$make TARGET=sky clean

Contiki编译系统由一系列Makefile文件组成:

  • Makefile :位于project文件夹的project的makefile

  • Makefile.include :位于Contiki源代码树的整个系统范围的makefile文件

  • Makefile.$(TARGET) :当前使用的,在platform/ 的子文件夹下特定平台的编译规则

  • Makefile.$(CPU) : 平台使用的微处理器或者CPU编译规则,位于 cpu/ 文件夹下

  • Makefile.$(APP) : apps/ 文件夹下应用程序的编译规则

参考hello-world项目文件夹下的Makefile文件:

205540517.png

1~2 应用程序名

6 Contiki源代码树的位置

7 Makefile.include 位于Contiki源代码树的根目录下,Makefile.include中包含Contiki系统核心的C文件的定义;Makefile.include有对Makefile.$(TARGET)、Makefile.$(APP)的引用。

Makefile.$(TARGET)包含添加到Contiki system的platform的C文件列表;这个列表由环境变量"CONTIKI_TARGET_SOURCEFILES"定义;并且包含有Makefile.$(CPU)。

Makefile.$(CPU)包含为特定CPU使用的C编译器的定义。

2.code style

code-style

  • 非全局变量用"static"标记;这可以降低symbol table的size

    211422220.png

  • 在文件外可见的所有变量和函数名称需要加上以module name 作为前缀,方便找到其定义的位置

  • 具备变量总是要在函数开始之处声明

  • static(non-global)函数不需要module name前缀

github-Contiki-Build-System

3.contiki mainpage

The Contiki Operating System or /contiki/doc/contiki-mainpage.txt

4.Contiki入门学习

Contiki基础

以hello-world为例快速编写第一个应用程序

InstantContiki例子体验--webserver-ipv6 & Instant contiki install scripts

~/contiki/examples/webserver-ipv6编译运行结果如下:

102503491.png

新开一个terminal:

102505894.png

102507524.png


你可能感兴趣的:(System,Build,hello-world)