NuttX
NuttX è un sistema operativo real-time (RTOS) molto compatto ed efficiente progettato per applicazioni embedded.Il sistema supporta diverse architetture è scalabile per microcontrollori da 8-bit a 32 bit.
NuttX sistema operativo | |
---|---|
![]() | |
Sviluppatore | Gregory Nutt |
Famiglia | Sistema operativo real-time |
Release corrente | 12.10.0 (7 luglio 2025) |
Tipo di kernel | RTOS, Microkernel |
Piattaforme supportate | ARM, AVR, AVR32, HCS12, SuperH, Z80 |
Licenza | BSD (con qualche applicazione GPL e LGPL) |
Stadio di sviluppo | stabile |
Sito web | www.nuttx.org |
NuttX è stato rilasciato nel 2007 da Gregorio Nutt sotto la licenza BSD.
Il Kernel supporta una varietà di meccanismi come: multithreading, timer software, semafori, mutex, variabili condizionali, messaggi, sorgenti di evento, code, I/O sincrono o asincrono con possibilità di timeout.
Caratteristiche principali
Piattaforme supportate
- ARM
- ARM7TDMI (TI TMS320 C6571, Calypso, NXP LPC214x, LPC2378, STMicro STR71x)
- ARM920T (Freescale i.MX1)
- ARM926EJS (TI DM320, NXP LPC31xx)
- ARM Cortex-A5 (Atmel SAMA5D3, SAMA5D4)
- ARM Cortex-A8 (Allwinner A10)
- ARM Cortex-M0 (nuvoTon NUC120, Freescale KL25Z, KL26Z, Atmel SAMD20/21, SAML21)
- ARM Cortex-M3 (ST Micro STM32 F1/F2/F3, TI/Stellaris LM3S, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs EFM32)
- ARM Cortex-M4 (with/without floating point unit: ST Micro STM32 F4, TI/Stellaris LM4F/TM4C, NXP LPC43xx, Freescale Kinetis K40/60, Atmel SAM4C/4E/4S/4L)
- ARM Cortex-M7 (Atmel SAMV7, ST Micro STM32 F7)
- Atmel AVR
- Atmel 8-bit AVR
- AVR32
- Freescale
- Intel
- MicroChip PIC32MX (MIPS)
- Renesas/Hitachi
- Renesas/Hitachi SuperH
- Renesas M16C/26
- Zilog
- Zilog Z16F
- Zilog eZ80 Acclaim!
- Zilog Z8Encore!
- Zilog Z80
File system
C/C ++ library
- Libreria C standard pienamente integrata nel sistema operativo
- Include il supporto in virgola mobile tramite una libreria matematica standard
- Add-on uClibc++ modulo fornisce libreria standard C++ supporta iostreams, stringhe, STL, RTTI, eccezioni, ecc (LGPL)
Networking
- Supporto di più interfaccie di rete; supporto di più link layer
- IPv4, IPv6, TCP / IP, UDP, ICMP, IGMPv2 (client) stacks.
- Stream e datagram sockets.
- Raw socket e local, supporto Unix ___domain socket.
- SLIP.
- Un cJSON port.
- Ingombro ridotto (basato su uIP).
- BSD compatibile Socket Layer.
- Utilità di rete (DHCP server e client, SMTP client, Telnet client, FTP server e client, TFTP client, HTTP server e client, NTP client). Ereditabili Telnet sessioni (come "terminale di controllo")
- NFS client. Supporto client per un Network File System (NFS, versione 3, UDP).
- ICMPv6 autonoma configurazione automatica.
- Port di Jef Poskanzer di thttpd server HTTP integrato con NXFLAT per fornire CGI incorporato.
- PHY Gestione Link Status.
- UDP Network Discvory, server RPC XML.
- Server RPC XML.
- Supporto per moduli di rete (come ad esempio il modulo di TI CC3000 WLAN)
Supporto Flash
- MTD interfaccia per Memory Technology Devices.
- FTL. Semplice Flash Translation Layer per sistemi su FLASH.
- Supporto NAND.
- NXFFS.
- Supporto per dispositivi SPI-based
Supporto USB
Architettura host USB per driver di controller host USB e driver di classe USB dipendenti dal dispositivo. Driver del controller host USB disponibili per il Atmel SAMA5Dx, NXP LPC17xx, LPC31xx, e STMicro STM32. Driver di classe USB dipendenti da dispositivo disponibili per l'archiviazione di massa USB e tastiera HID. Supporto per dispositivi USB [modifica] Architettura Gadget-simile per i driver di controller USB e driver di classe USB dipendenti dalla periferica Driver del controller dispositivo USB disponibili per il PIC32, Atmel AVR, SAM3, SAM4, e SAMA5Dx, NXP LPC17xx, LPC214x, LPC313x, e LPC43xx, Silicio Laboraties EFM32, STMicro STM32 F1, F2, F3, F4 e, e TI DM320. Driver di classe USB dipendenti da dispositivo disponibili per USB e seriale per archiviazione di massa USB Funzionalità incorporata traccia USB per il debug USB
Supporto grafico
- Framebuffer driver.
- LCD driver per entrambi i display LCD paralleli e SPI OLED.
- NX Graphics Subsystem: Libreria grafica, sistema a finestre e supporto font funziona sia con framebuffer o driver LCD.
- NuttX Widget: [4] Una interfaccia grafica scritta in conservatrice C++ che si integra con la grafica NX.
- NuttX Window Manager: Una piccolo window manager basato sul NX Graphics Subsystem e widget NuttX.
Progetti che utilizzano NuttX
- Thingsee IOT.
- Pilota automatico PX4.
- Pixhawk:. Un avanzato, User-Friendly Autopilota.
- OsmocomBB utilizza NuttX per sviluppare un sistema operativo per telefoni cellulari.