NuttX

出自Local Chinese Wikipedia
跳至導覽 跳至搜尋
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). 

    外部連結[編輯]