简而言之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