背景:目前边界路由器已经可以运转,6lowpan连接互联网的网络环境已经建立起来,COAP作为应用层协议,需要深入了解,这一节先做知识储备,计划从以下几个方面进行学习和探索:
1、COAP的定义和相关应用
1)contiki-2.6 cc2530平台 添加coap应用重启问题
5) Contiki移植—cfs-coffee 文件系统在pc上的验证
2、Contiki 源代码结构与APP应用添加方法 【摘自网络】
Contiki 是一个高度可移植的操作系统,它的设计就是为了获得良 好的可移植性,因此源代码的组织很有特点。
本节简单介绍 Contiki 的
源代码组织结构以及各部分代码的作用。
Contiki 源文件目录可以在 Contiki 官网下载的源代码中找到。打开 Contiki 源文件目录,可以看到主要有 apps、core、cpu、doc、examples、
platform、tools 等目录。下面将分别对各个目录进行介绍。 1)Core:此目录下是 Contiki 的核心源代码,包括网络(net)、文件
系统(cfs)、外部设备(dev)、链接库(lib)等等,并且包含了时钟、 I/O、ELF 装载器、网络驱动等的抽象;
2)Cpu:此目录下是 Contiki 目前支持的微处理器,例如 arm、avr、 msp430 等等。如果需要支持新的微处理器,可以在这里添加相应的源 代码;
3)Platform:此目录下是 Contiki 支持的硬件平台,例如 mx231cc、 micaz、sky、win32 等等。Contiki 的平台移植主要在这个目录下完成。
这一部分的代码与相应的硬件平台相
4)Apps:此目录下是一些应用程序,例如 ftp、shell、webserver 等 ,在项目程序开发过程中可以直接使用。使用这些应用程序的方式为,在项目的 Makefile 中,定义 APPS = [应用程序名称]。在以后的示例中会具体看到如何使用 apps;
5)Examples:此目录下是针对不同平台的示例程序。Smeshlink 的示例程序也在其中;
6)Doc:此目录是 Contiki 帮助文档目录,对 Contiki 应用程序开发
很有参考价值。使用前需要先用 Doxygen 进行编译;
7)Tools:此目录下是开发过程中常用的一些工具,例如 CFS 相关 的 makefsdata、网络相关的 tunslip、模拟器 cooja 和 mspsim 等等。
为了获得良好的可移植性,除了 cpu 和 platform 中的源代码与硬件
平台相关以外,其他目录中的源代码都可能与硬件无关。编译时,根据
指定的平台来链接对应的代码。
2、contiki系统中coap应用程序的编译
此处以IPV6-UDP为例进行测试,修正Makefile文件如下:
DEFINES+=PROJECT_CONF_H=\"project-conf.h\"
DEFINES+=WITH_COAP
DEFINES+=APPS
HAVE_BANKING=1
UIP_CONF_IPV6=1
UIP_CONF_RPL=1
PROJECT_SOURCEFILES += ping6.c
CONTIKI_PROJECT = client server
all: $(CONTIKI_PROJECT)
APPS = rest-coap
CONTIKI = ../../..
#include $(CONTIKI)/apps/rest-http/Makefile.rest-http
#include $(CONTIKI)/apps/rest-common/Makefile.rest-common
#include $(CONTIKI)/apps/rest-coap/Makefile.rest-coap
include $(CONTIKI)/Makefile.include
编译通过后如下图所示:
反显色部分展示的是生成的对象文件。