首页 理论教育 Contiki物联网操作系统核心文件夹

Contiki物联网操作系统核心文件夹

时间:2023-11-20 理论教育 版权反馈
【摘要】:图1-7core目录的子目录1.sys文件夹图1-7 中sys 文件夹包含Contiki 操作系统内核的所有代码,用于实现任务调度、事件驱动、定时器等相关功能,是操作系统的核心文件。

Contiki物联网操作系统核心文件夹

core 文件夹是Contiki 操作系统的核心代码目录,包含了Contiki 中与硬件无关的代码、网络协议栈、硬件驱动程序的头文件等。core 文件夹中包含的子目录如图1-7所示。

图1-7 core目录的子目录

1.sys文件夹

图1-7 中sys 文件夹包含Contiki 操作系统内核的所有代码,用于实现任务调度事件驱动定时器等相关功能,是操作系统的核心文件。

2.net文件夹

如图1-8 所示,net 文件夹包含了与Contiki 操作系统网络协议栈相关的一系列文件和目录,如ip 文件夹、rime 文件夹、mac 文件夹和rpl 文件夹。ip 文件夹包含了uIP协议栈代码,包括TCP、UDP、IPv4/IPv6、ICMP协议代码以及相关数据结构,如邻居表、路由表等,还包括6LoWPAN 协议的实现。rime文件夹包含了rime协议栈相关的代码。mac文件夹包含了ISO七层协议中的MAC层代码,该目录中包含多个mac 层协议,包括contikiMAC、tdma_mac、nullmac、xmac、cxmac、csma 等,可以在contiki-conf.h中配置选用需要的mac协议。rpl文件夹包含了IETF ROLL工作组针对LLN网络制定的rpl路由协议的具体实现,称为ContikiRPL,ContikiRPL是实现无线自组网的关键

图1-8 core/net的目录结构

3.cfs文件夹

cfs 文件夹是Coffe File System 的简写,是Contiki 操作系统中小型的基于Flash 存储器的文件系统,是针对物联网设备资源受限的特点而设计的,其特点是:减少内存使用,支持大规模存储。

4.ctk文件夹(www.xing528.com)

ctk 文件夹是The Contiki Toolkit 的简写,该目录中的代码给Contiki 操作系统提供图形化的操作界面。

5.dev文件夹

dev 文件夹包含了Contiki 操作系统中一些常用的驱动程序的头文件定义,以及驱动程序中与硬件无关的代码,用户移植Contiki 操作系统时根据这些头文件定义的api函数编写驱动程序,一些典型的驱动包括spi.h、slip.h、leds.h、watchdog.h等。

6.lib文件夹

lib 文件夹包含了Contiki 操作系统以及其他程序用到的一些常用库函数,如链表、反傅立叶变换ifft、数据结构list、随机数发生器random、环形缓冲区ringbuf、字符串比较strncasecmp 等函数,用户需要相关的库函数时,只需要把对应的库文件添加到工程中进行编译即可。

7.loader文件夹

Contiki 操作系统是面向资源受限设备应用的小型操作系统,在这类小型嵌入式系统中,通常是把整个程序编译后烧写到设备中的,如果需要修改程序,则必须重新编译和烧写,而一些物联网应用中的设备数量多,重新烧写很困难。因此,Contiki操作系统实现了一个小型的动态加载模块loader,它允许用户在需要的时候动态加载应用程序,来提高灵活性。

8.头文件

头文件contiki.h 包含Contiki 相关的所有头文件,contiki-lib.h 包含了常用库的头文件,contiki-net.h包含了net相关的头文件,contiki-verson.h包含了当前Contiki的版本号字符串。

以上这些目录中, sys、net、lib、dev 中的源代码通常是需要的,而cfs、ctk、loader 中的文件则根据实际应用需要进行添加。Contiki 操作系统中的代码大多是模块化结构,可以根据需要进行灵活裁剪以满足多种应用的需要。

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

我要反馈