NuttX
NuttX是一个专注于标准合规和占用少记忆体的实时操作系统(RTOS)。它可以在8位到32位的微控制器上部署。NuttX在编写时主要参照了POSIX和ANSI标准。对于那些标准中没有的部分,如fork()等,则参考了VxWorks或其他RTOS。
开发者 | Gregory Nutt |
---|---|
编程语言 | C, C++, 汇编语言 |
操作系统家族 | 实时操作系统 |
运作状态 | 活跃 |
源码模式 | 开放原始码 |
首次发布 | 2007年 |
当前版本 |
|
市场取向 | 嵌入式系统 |
支援平台 | ARM, AVR, AVR32, HCS12, LM32, MIPS, RISC-V, SuperH, Xtensa XL6, Z80 |
内核类别 | 微内核 |
许可证 | Apache License 2.0 |
官方网站 | nuttx |
仓库 |
NuttX最早是在2007年由Gregory Nutt于BSD协议下释出的。
具体实现
编辑NuttX 基本上完全是由C语言实现的,并且通过Kconfig生成GNU makefile。NuttX的发行版包括了NuttX内核本身和相当一部分的中间件和板级支持包。 NuttX的内核和绝大多数代码完全是由Gregory Nutt完成的,并由他专门维护。所有的社区贡献都必须经过他批准。
关键功能
编辑- 符合各类重要标准
- 核心任务管理
- 模组化的微核心
- 完全可抢占(计算机)
- 可扩展,高度可配置
- 容易移植到各类新的处理器、SoC或者板级架构上
- 先进先出和时间片轮转调度,并可以采取无节拍内核
- 实时,具备确定性
- 具备和POSIX/ANSI类似的任务控制,有名消息队列,计数信号量,时钟、定时器和信号,POSIX线程,环境变量和文件系统
- 具备和VxWorks类似的任务管理和看门狗定时器
- 具备和BSD类似的socket接口
- 可选的进程实现
- 支持对称多处理器
- 支持可加载的内核模块
- 支持线程本地存储(TLS)
- 支持系统日志
- 可选实现的系统调用或直接函数调用
- 内置了可针对各线程配置的CPU负载监控
- 客制化的NuttX C库
- 拥有完善的用户手册描述
- ARM
- ARM7TDMI (德州仪器TMS320 C6571, Calypso, MoxART, NXP LPC214x, LPC2378, STMicro STR71x)
- ARM920T (飞思卡尔i.MX1)
- ARM926EJS (德州仪器 DM320, NXP LPC31xx)
- ARM Cortex-A5 (爱特梅尔SAMA5D2, SAMA5D3, SAMA5D4)
- ARM Cortex-A8 (全志A10)
- ARM Cortex-A9 (NXP/Freescale i.MX6)
- ARM Cortex-R4/R4F (TI TMS570, Samsung Artik)
- ARM Cortex-M0/M0+ (新唐: NUC120, NXP: KL25Z, KL26Z, LPC11xx, Atmel: SAMD20/21, SAML21, ST Micro STM32 F0)
- ARM Cortex-M3 (ST Micro STM32 F1/F2/L4, TI/Stellaris LM3S, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs EFM32)
- ARM Cortex-M4 (有或没有浮点处理器单元:STM32 F3/F4/L4,TI/Stellaris LM4F/TM4C, NXP LPC43xx/LPC54xx, Freescale Kinetis K20/K28/K40/60/64/66, Atmel SAM4C/4E/4S/4L, Infineon XMC4xxx, Nordic NRF52xxx)
- ARM Cortex-M7 (爱特梅尔SAMV71/SAME70, ST Micro STM32 F7, STM32 H7, NXP i.MX RT)
- Atmel AVR
- Atmel 8-bit AVR (AT90USB, ATmega)
- AVR32
- Freescale
- M68HCS12
- Intel
- MIPS
- MicroChip PIC32MX (MIPS M4K)
- MicroChip PIC32MZEF (MIPS M5150)
- Misoc
- LM32 (Qemu)
- OpenRISC
- mor1kx
- Renesas/Hitachi
- Renesas/Hitachi SuperH
- Renesas M16C/26
- Renesas RX65N
- RISC-V
- LiteX on ARTY A7
- Xtensa LX6
- Expressif ESP32
- Zilog
- Zilog Z16F
- Zilog eZ80 Acclaim!
- Zilog Z8Encore!
- Zilog Z180
- Zilog Z80
参考资料
编辑- ^ Release 12.6.0. 2024年10月1日 [2024年10月22日].
- ^ Supported Platforms — NuttX latest documentation. nuttx.apache.org. [2022-06-03]. (原始内容存档于2022-07-28).