NuttX是一个专注于标准合规和占用少记忆体的实时操作系统RTOS)。它可以在8位到32位的微控制器上部署。NuttX在编写时主要参照了POSIXANSI标准。对于那些标准中没有的部分,如fork()等,则参考了VxWorks或其他RTOS。

NuttX
NuttX
开发者Gregory Nutt
编程语言C, C++, 汇编语言
操作系统家族实时操作系统
运作状态活跃
源码模式开放原始码
首次发布2007年,​17年前​(2007
当前版本
  • 12.7.0(2024年10月30日;稳定版本)[1]
编辑维基数据链接
市场取向嵌入式系统
支援平台ARM, AVR, AVR32, HCS12, LM32, MIPS, RISC-V, SuperH, Xtensa XL6, Z80
内核类别微内核
许可证Apache License 2.0
官方网站nuttx.apache.org
仓库 编辑维基数据链接

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库
  • 拥有完善的用户手册描述

支持架构[2]

  • 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

参考资料

  1. ^ Release 12.7.0. 2024年10月30日 [2024年11月24日]. 
  2. ^ Supported Platforms — NuttX latest documentation. nuttx.apache.org. [2022-06-03]. (原始内容存档于2022-07-28). 

外部链接