loader:contiki是面向无线传感网络应用的小型操作系统,在这类小型嵌入式系统中,通常是整个程序编译后烧写到设备中,程序如果需要修改则必须重新编译和烧写,而传感网络中节点数量多,重新烧写困难。因此,contiki实现了一个小型的动态加载模块loader,它允许用户在需要的时候动态加载应用程序,提高灵活性;(可以将不同协议编写成模块,动态加载)
net:包含了contiki上网络协议相关的代码,包含了IPv4、IPv6、Lowpan、RPL等基于IP的网络层代码,还包括MAC层协议,如IEEE802.15.4、ContikiMAC等;此外,contiki还包含了rime协议栈;
netcore/net core/netcore/net 目录说明
core/net目录下包含一系列的文件,以及mac、rime、rpl三个子目录,功能如下:
net中的文件:这是uIP协议栈代码,包括TCP、UDP、IPv4/IPv6、ICMP协议代码以及相关数据结构,如邻居表、路由表等,还包括6Lowpan协议的实现sicslowpan.c和sicslowpan.h;
rime:contiki中包含两个系列的协议栈:uIP协议栈和Rime协议栈,其中Rime是SICS开发的私有无线Mesh协议栈,而uIP是基于IP的协议栈。Rime目录中包含了rime协议栈相关的代码;Contiki中只能选择其中一个协议栈。
mac:包含了ISO七层协议中的MAC层代码,该目录中包含多个mac层协议,包括contikiMAC、tdma_mac、nullmac、xmac、cxmac、csma等,用户可以在contiki-conf.h中配置使用哪个mac协议;
rpl:该目录包含了IETF ROLL工作组针对LLN网络制定的rpl路由协议的具体实现,称为ContikiRPL。ContikiRPL是实现无线自组网的关键。
sys:包含了Contiki操作系统内核的所有代码,实现任务调度、事件驱动、定时器等相关功能,是操作系统的核心文件;