首页 理论教育 物联网操作系统Contiki的数据链路层协议选择和修改

物联网操作系统Contiki的数据链路层协议选择和修改

时间:2023-11-20 理论教育 版权反馈
【摘要】:Framer、RDC 和MAC 三个层都需要在编译期间定义,可以在Makefile 文件或project-conf.h 文件中使用编译#define 定义。下面代码是用于设置MAC层的代码片段:初始化时代码检查是否NETSTACK_NETWORK 已经定义,如果没有定义,代码检查是否NETSTACK_CONF_NETWORK 定义。因此,如果要使用特定的网络协议,可以直接定义NETSTACK_NETWORK 或NETSTACK_CONF_NETWORK 实现。如果没有定义这些值,Contiki系统中默认的网络协议栈如下:通常在程序文件contiki-conf.h 中定义网络协议栈,协议栈定义重写网络协议栈配置文件core/net/netstack.h。

物联网操作系统Contiki的数据链路层协议选择和修改

Framer、RDC 和MAC 三个层都需要在编译期间定义,可以在Makefile 文件或project-conf.h 文件中使用编译#define 定义。应该使用的协议的定义由头文件core/net/netstack.h 使用,头文件netstack.h 实现NETSTACK_FRAMER、NETSTACK_RDC 和NETSTACK_MAC与可能使用它们的协议的有效绑定。

下面代码是用于设置MAC层的代码片段:

初始化时代码检查是否NETSTACK_NETWORK 已经定义(#ifndef NET⁃STACK_NETWORK),如果没有定义,代码检查是否NETSTACK_CONF_NET⁃WORK 定义。如果定义了NETSTACK_CONF_NETWORK,则使用期望的网络协议(#define NETSTACK_NETWORK NETSTACK_CONF_NETWORK),否则,使用默认的网络协议,在这种情况下使用网络协议rime_driver。

因此,如果要使用特定的网络协议,可以直接定义NETSTACK_NET⁃WORK 或NETSTACK_CONF_NETWORK 实现。如果没有定义这些值,Contiki系统中默认的网络协议栈如下:(www.xing528.com)

通常在程序文件contiki-conf.h 中定义网络协议栈,协议栈定义重写网络协议栈配置文件core/net/netstack.h。每个平台都有一个文件contiki-conf.h,例如对于sky平台,在文件夹platform/sky 中有程序文件contiki-conf.h。下面的代码说明了网络协议栈的定义:

从上面的定义可以看出,如果使用sky微尘硬件平台,默认的网络协议栈由csma_driver、contikimac_driver、framer_802154和cc2420_driver组成。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈