首页 > 科技 > 开源实时多线程IoT操作系统RIOT

开源实时多线程IoT操作系统RIOT

简而言之RIOT

RIOT是基于微内核的开源操作系统,旨在满足物联网(IoT)设备和其他嵌入式设备的需求。这些要求包括非常低的内存占用量(几千字节的数量级),高能效,实时功能,用于无线和有线网络的通信堆栈以及对各种低功耗硬件的支持。

RIOT提供了一个微内核,多个网络堆栈和实用程序,其中包括加密库,数据结构(bloom过滤器,哈希表,优先级队列),shell等。RIOT支持广泛的微控制器体系结构,无线电驱动器,传感器以及用于整个平台的配置,例如Atmel SAM R21 Xplained Pro,Zolertia Z1,STM32 Discovery Boards等。RIOT提供一致的API,并支持ANSI C和C ++应用程序编程,以及多线程,IPC,系统计时器,互斥体等。下图为RIOT与其他实时系统的对比图。

RIOT 基于微内核架构,提供的功能包括但不限于:

  • 抢占式调度
  • 灵活的内存管理
  • 高解析度,长期定时器
  • 支持基于 AVR、MSP430、MIPS、ARM7 和 ARM Cortex-M 的 100 多个开发板
  • 原生端口能够像在 Linux、BSD 和 MacOS 上一样运行 RIOT,单个机器上运行的多个 RIOT 实例也可以通过简单的虚拟以太网桥进行互连
  • IPv6
  • 6LoWPAN (RFC4944、RFC6282 和 RFC6775)
  • UDP
  • RPL (存储模式、P2P 模式)
  • CoAP
  • CCN-Lite

RIOT体系结构

RIOT的代码库分为内核、平台特定代码、设备驱动程序、库和网络代码以及演示功能和测试的应用程序五个组。

  • 内核(core)
  • 平台特定代码(cpu; boards)
  • 设备驱动程序(drivers)
  • 库和网络代码(sys; pkg)
  • 演示功能和测试的应用程序(examples; tests)

此外,RIOT包括用于各种任务的脚本集合(dist)以及用于生成此文档的预定义环境。

支持的开发板以及平台如下,感觉支持还是比较丰富。

快速入门

下载RIOT源码,您可以通过下载最新的tarball或克隆git存储库,从github存储库获取最新的RIOT代码。要克隆RIOT存储库,需要Git版本控制系统并运行以下命令:

git clone git://github.com/RIOT-OS/RIOT.git

编译RIOT代码,根据要使用的硬件,需要首先安装相应的工具链。RIOT使用make作为构建工具。编译应用程序并将其与RIOT链接的最简单方法是自己编写makefile,其makefile至少提供以下变量:

APPLICATION:应包含应用程序的名称

BOARD:指定默认情况下应用程序应为其构建的平台

RIOTBASE:指定RIOT路径

此外,它还必须包含Makefile.include文件,其文件位于RIOT的根目录中。makefile模板如下:

# a minimal application Makefile

APPLICATION = mini-makefile

BOARD ?= native

RIOTBASE ?= $(CURDIR)/../RIOT

include $(RIOTBASE)/Makefile.include

上述变量用?=运算符,以便允许从命令行覆盖变量。例如通过调用make,可以使用示例makefile轻松指定目标平台,如下所示:

make BOARD=iotlab-m3

除了像clean、all或doc这样的典型目标之外,RIOT还提供了特殊的目标flash和term来调用为指定平台配置的flash和终端工具。这些目标使用可变端口与设备进行串行通信。除非另有说明,make将在应用程序目录的bin文件夹中创建elf文件和intel hex文件。

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/178367.html