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). 

外部連結

編輯