NuttX

维基百科,自由的百科全书
跳转到导航 跳转到搜索
NuttX
NuttX
开发者Gregory Nutt
编程语言C, C++, 汇编语言
操作系统家族实时操作系统
运作状态活跃
源码模式开放原始码
首次发布2007年,​19年前​(2007
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    市场取向嵌入式系统
    支援平台ARM, AVR, AVR32, HCS12, LM32, MIPS, RISC-V, SuperH, Xtensa XL6, Z80
    内核类别微内核
    许可证Apache License 2.0
    官方网站nuttx.apache.org
    仓库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)

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

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

    支持架构[1][编辑]

    • 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. ^ Supported Platforms — NuttX latest documentation. nuttx.apache.org. [2022-06-03]. (原始内容存档于2022-07-28). 

    外部链接[编辑]