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庫
- 擁有完善的用戶手冊描述
支持架構[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
- 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).