本文主要对流行的3种开源rtos从以下纬度进行技术对比。
应用层的标准化API成熟度支持的硬件调度支持IO 支持(需要本地或特定于供应商的模块)网络堆栈存储和显示内存占用安全认证LicensePOSIX兼容性1. POSIX兼容性OS
NuttX
FreeRTOS
Zephyr
Feature
Standardization
POSIX
yes
partial
partial
POSIX.1 1
yes
wrapper
partial
POSIX.1b 2
yes
partial
partial
POSIX.1c 3
yes
yes
partial
2. 成熟度成熟度
NuttX
FreeRTOS
Zephyr
First release
2007
2003
2016
Last release
2019
2020
2019
Update rate
about 3 months
irregular
3 months
Community
open-source
open-source
Linux Foundation Collaboration Project, (Intel, Linaro (ARM), nordic, NXP, Synopsys)
3. 调度调度支持
NuttX
FreeRTOS
Zephyr
Priority-based
FIFO
yes
yes
Round-Robin 4
yes
yes 6
co-operative
Sporadic Server
yes
no
no
Reservation Based Scheduling (RBS)
no
no
no
Rate Monotonic Scheduling (RMS)
?
yes 10
yes 10
Semaphore /Mutex Management
yes (Priority Inheritance)
yes
yes
| |
4. IOIO
NuttX
FreeRTOS
Zephyr
I2C
yes
yes 8
yes
SPI
yes
yes 8
yes
UART
hw-specific
yes 8
yes
USB
yes
vendor-specific
yes
CAN
yes
vendor-specific
yes
CAnopen
no
vendor-specific
yes
Modbus
yes
vendor-specific
?
5. 网络Networking
NuttX
FreeRTOS
Zephyr
BLE-Stack
unclear
yes
yes
6LoWPAN
yes
no
yes
TLS
yes
yes
Thread
no
?
Ethernet
yes
yes
yes
Wifi
yes
yes
yes
NFC
unclear
no
yes
RFID
yes
no
yes
6. 存储与显示存储与显示
NuttX
FreeRTOS
Zephyr
File System
yes
yes
yes
Graphical User Interface
vendor-specific
?
7. 内存引脚、安全认证、证书内存引脚
NuttX
FreeRTOS
Zephyr
RAM
“small footprint”
236 B scheduler + 64 B / task
“small footprint”
ROM
“small footprint”
5 - 10 kB
“small footprint”
安全认证
NuttX
FreeRTOS
Zephyr
Software Development Process DO178B Level A / EUROCAE ED-12B
no
SafeRTOS: DO178C (Aerspace) by Wittenstein
no
Functional Safety IEC-61508
no
SafeRTOS (SIL 3)
soon
License
BSD
MIT and Commercial
Apache 2
* 参考(https://micro.ros.org/docs/concepts/rtos/comparison/)