NuttX

sistema operativo
Versione del 14 giu 2016 alle 01:30 di Rotbot (discussione | contributi) (Bot: aggiornamento parametro tipologia_licenza)

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
Logo
Logo
SviluppatoreGregory Nutt
FamigliaSistema operativo real-time
Release corrente7.16 stabile (1 giugno 2016)
Tipo di kernelRTOS, Microkernel
Piattaforme supportateARM, AVR, AVR32, HCS12, SuperH, Z80
Tipo licenzaSoftware libero
LicenzaBSD (con qualche applicazione GPL e LGPL)
Stadio di sviluppostabile
Sito webwww.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

  • Conforme agli standard.
  • Task Management Core.
  • Design modulare.
  • Completamente preemptible.
  • Naturalmente scalabile.
  • Altamente configurabile.
  • Facilmente estendibile a nuove architetture di processori, l'architettura SoC, o architetture board.
  • FIFO, round-robin, e “sporadic” scheduling.
  • In tempo reale, deterministico, con il supporto per l'ereditarietà prioritario.
  • Operazione tickless.
  • Controlli POSIX / ANSI-like, code dei messaggi, counting semaphores, clocks/timers, segnali, pthreads, variabili di ambiente, filesystem.
  • VxWorks-like gestione delle attività e timer watchdog.
  • Socket BSD.
  • Estensioni per la gestione di prelazione.
  • Attività facoltative con ambienti di indirizzo (Processi).
  • Configurazioni di memoria: (1) Flat embedded build, (2) Protected build con MPU, e (3) Kernel build with MMU.
  • On-demand paging.
  • Log di sistema.

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 SAMA5D2, SAMA5D3, SAMA5D4)
    • ARM Cortex-A8 (Allwinner A10)
    • ARM Cortex-R4/R4F (TI TMS570)
    • ARM Cortex-M0 (nuvoTon NUC120, Freescale KL25Z, KL26Z, Atmel SAMD20/21, SAML21)
    • ARM Cortex-M3 (ST Micro STM32 F1/F2, TI/Stellaris LM3S, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs EFM32)
    • ARM Cortex-M4 (with/without floating point unit: ST Micro STM32 F3/F4, TI/Stellaris LM4F/TM4C, NXP LPC43xx, Freescale Kinetis K20/K40/60, Atmel SAM4C/4E/4S/4L)
    • ARM Cortex-M7 (Atmel SAMV71/SAME70, ST Micro STM32 F7)
  • Atmel AVR
    • Atmel 8-bit AVR(AT90USB,ATmega)
    • AVR32
  • Freescale M68HCS12
  • Intel
  • (MIPS)
    • MicroChip PIC32MX (MIPS32 24Kc)
    • MicroChip PIC32MZ (MIPS32 M14K)
  • Renesas/Hitachi
    • Renesas/Hitachi SuperH
    • Renesas M16C/26
  • Zilog

File system

  • Piccolo in memoria, root pseudo-file-system.
  • Virtual File System (VFS).
  • Mount-able volumes. Bind mountpoint, filesystem, and block device driver.
  • Log di sistema generico (SYSLOG).
  • FAT12/16/32 filesystem support.
  • NFS client. Supporto client per un Network File System (NFS, versione 3, UDP).
  • NXFFS. Il piccolo sistema di file flash wear-leveling NuttX.
  • SMART. File system FLASH da Ken Pettit.
  • Driver generico per SPI-based MMC / SD / SDHC card.
  • Romfs FileSystem supporto.
  • Un Binary Loader con il supporto per i seguenti formati:
 Separato linked ELF modules
 Separato linked NXFLAT modules. NXFLAT è un formato binario che può essere XIP da un file system
  • PATH di supporto variabile.
  • Trasferimenti di file via TFTP e FTP (get e put), HTML (wget), e Zmodem (sz e rz).
  • Intel conversioni HEX.

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ù interfacce 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

Supporto per host 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

  • Architettura Gadget-like 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 USB per il debug USB.

Supporto grafico

  • Framebuffer driver.
  • LCD driver per entrambi i display LCD paralleli e SPI OLED.
  • VNC Server.
  • NX Graphics Subsystem: Libreria grafica, sistema a finestre e supporto font funziona sia con framebuffer o driver LCD.
  • NuttX Widget: Una interfaccia grafica scritta in conservatrice C++ che si integra con la grafica NX.
  • NuttX Window Manager: Un 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.

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica