contiki目录结构

时间:2024-04-12 14:25:52

 Contiki操作系统是小型、开源、可移植的多任务计算机操作系统,它适用于一系列内存受限的网络系统,包括8位计算机到微控制器的嵌入式系统设备。Contiki操作系统完全采用C语言开发,可移植性好,对硬件要求极低。典型的配置只占用约2kB的RAM以及40KB的FLASH存储器,能够运行在各种类型的微处理器即电脑上。

   要移植contiki系统,先要对Contiki文件目录有一定的了解。Contiki源代码可以在http://www.contiki-os.org/网站下载到,20158月推出了最新的3.0版本。解压后,可以看到Contiki操作系统源码的目录结构,该目录下包含appscorecpudevdocexampletoolsregression-tests等目录,其余几个文件是说明文档以及Makefile.include脚本文件。

contiki目录结构

1.core文件夹

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

contiki目录结构

(1)sys文件夹

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

 (2)net文件夹

     net文件夹包含了与contiki操作系统网络协议栈相关的一系列文件和目录。

  (3)cfs文件夹

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

   (4)ctk文件夹

     ctk文件夹中的代码给contiki操作系统提供图形化操作界面。

   (5)dev文件夹

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

Watchdog.h等。

  (6)lib文件夹

      lib文件夹包含了contiki操作系统以及其他程序用到的一些常用的库函数。

  (7)loader文件夹

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

  (8)头文件

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

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

2.cpu文件夹

      cpu文件夹包含了与微控制器移植相关的代码,包含了寄存器定义、contiki系统内核与硬件相关的代码(如时钟、定时器等),微控制器的驱动程序等。contiki系统对硬件的要求很低,移植十分方便。

3.paltform文件夹

      paltform文件夹是与电路板相关的移植代码和驱动程序,电路板中包含微核心控制器,还包括各类外围通信器件,传感器器件,如USB串口通信、温湿度传感器等。cpu目录中只用微控制器相关的移植代码,而电路板相关 的外围设备驱动程序在platform中定义。

4.apps文件夹

     apps文件夹包含了许多在contiki操作系统的应用程序,如数据库antelope、web服务器,基于串口的shell命令、talent程序、COAP应用层协议。

5.tools文件夹

     tools文件夹包含了调试、开发、下载等相关的各类程序,如网络仿真工具Cooja、MSP430指令级网络仿真工具MSPsim、tunslip和tunslip6等工具。

6.examples文件夹

     example文件夹包含了许多contiki操作系统的示例代码,用户编程时可以参考这些程序,或者直接在这些代码中进行修改。

7.regression-tests文件夹

 regression-tests文件夹包含了多个使用Cooja工具进行模拟仿真的项目示例。

参考资料:物联网操作系统Contiki及其应用  郭显 编著