ThreadX - ThreadX

Azure RTOS ThreadX
Windows Azure logo.png
Sviluppatore Microsoft (originariamente Express Logic)
Scritto in C
Famiglia OS Sistema operativo in tempo reale (RTOS)
Stato di lavoro attuale
Modello di origine Software disponibile all'origine
Versione iniziale 1997 ; 24 anni fa  ( 1997 )
Ultima uscita v6.1.6_rel / 3 aprile 2021 ; 22 giorni fa  ( 2021/04/03 )
Repository github .com / azure-rtos / threadx /
Obiettivo di marketing Sistemi embedded , IoT : inclusi sensori, dispositivi, edge router, gateway
Metodo di aggiornamento Reinstallazione
Gestore dei pacchetti Nessuna
Piattaforme ARC , ARM , Blackfin, CEVA, C6x, MIPS , NXP , PIC , PowerPC , RISC-V , RX, SH, SHARC, TI , V850, Xtensa, x86 , Coldfire , altri
Tipo di kernel Embedded, deterministica, in tempo reale microkernel , picokernel
Interfaccia utente predefinita Supporto interfaccia utente integrato (GUIX)
Licenza Proprietario
Sito ufficiale azure .microsoft .com / en-us / services / rtos /

Azure RTOS ThreadX è altamente deterministico, incluso il sistema operativo real-time (RTOS) programmato per lo più nel linguaggio C .

Panoramica

ThreadX è stato originariamente sviluppato e commercializzato da Express Logic di San Diego, California , Stati Uniti. L'autore di ThreadX (e l'autore originale del Nucleus RTOS nel 1990) è William Lamie, che è stato anche Presidente e CEO di Express Logic.

Express Logic è stato acquistato per una somma non divulgata da Microsoft il 18 aprile 2019.

Il nome ThreadX deriva dai thread utilizzati come elementi eseguibili e la lettera X rappresenta il cambio di contesto , cioè cambia i thread. ThreadX fornisce funzionalità di pianificazione preventiva basata sulla priorità, risposta rapida agli interrupt , gestione della memoria , comunicazione tra thread, esclusione reciproca , notifica degli eventi e sincronizzazione dei thread . Le principali caratteristiche tecnologiche distintive di ThreadX includono soglia di prelazione, ereditarietà delle priorità , gestione efficiente del timer, timer software veloci, design picokernel , concatenamento di eventi e dimensioni ridotte: la dimensione minima su un processore con architettura ARM è di circa 2 KB.

ThreadX supporta ambienti di processori multi-core tramite il multiprocessing asimmetrico (AMP) o il multiprocessing simmetrico (SMP). L'isolamento del thread dell'applicazione con la protezione della memoria dell'unità di gestione della memoria (MMU) o dell'unità di protezione della memoria (MPU) è disponibile con i moduli ThreadX.

ThreadX ha ampie certificazioni di sicurezza da TÜV (TÜV, inglese: Associazione Tecnica d'Ispezione) e UL (Underwriters Laboratories in precedenza) ed è Motor Industry Software Association Affidabilità MISRA C compatibile.

ThreadX è la base della piattaforma X-Ware Internet of things (IoT) di Express Logic , che include anche il supporto del file system integrato (FileX), il supporto dell'interfaccia utente integrata (GUIX), la suite di protocolli Internet incorporata (TCP / IP) e la connettività cloud (NetX / NetX Duo) e supporto USB (Universal Serial Bus ) (USBX). ThreadX ha ricevuto valutazioni elevate da parte degli sviluppatori ed è un RTOS molto popolare. A partire dal 2017, secondo la società di ricerche di mercato VDC Research, ThreadX RTOS è diventato uno degli RTOS più popolari al mondo, essendo stato implementato in oltre 6,2 miliardi di dispositivi, tra cui elettronica di consumo, dispositivi medici, applicazioni di rete dati e SoC.

ThreadX viene distribuito utilizzando un modello di marketing in cui viene fornito il codice sorgente e le licenze sono esenti da royalty .

Piattaforme supportate

  • Dispositivi analogici
    • Blackfin
    • CM4xx
    • Microcontrollori di precisione
    • SHARC
    • Microcontrollori ULP
  • Tecnologia andina
    • RISC-V
  • Architettura ARM
    • ARM7
    • ARM9
    • ARM Cortex-A
    • ARM Cortex-R
    • ARM Cortex-M
    • ARM Cortex-A 64 bit
    • ARMv8M TrustZone
  • Cadenza
    • Xtensa
  • CEVA
    • TeakLite-III
  • eSi-RISC
    • eSi-16x0
    • eSi-32x0
  • Infineon
    • XMC1000
    • XMC4000
  • Intel
    • Nios II
    • Ciclone
    • Arria 10
    • x86
  • Microchip
    • AVR32
    • PIC24
    • dsPIC33
    • PIC32
    • SAM CV
    • SAM9
    • SAMA5
  • Architettura MIPS
    • MIPS32 4Kx
    • MIPS32 14Kx
    • MIPS32 24Kx
    • MIPS32 34Kx
    • MIPS32 74Kx
    • MIPS32 1004Kx
    • interAptiv
    • microAptiv
    • proAptiv
    • Classe M.
  • NXP
    • ColdFire + / ColdFire
    • i.MX
    • Kinetis
    • LPC
    • PowerPC
    • S32
  • Renesas
    • H8 / 300H
    • RX
    • RZ
    • SH
    • Sinergia
    • V850
  • ST
    • STM32F0
    • STM32F1
    • STM32F2
    • STM32F3
    • STM32F4
    • STM32F7
    • STM32L
  • Silicon Labs
    • Geco
    • Geco gigante
    • Geco gigante S1
    • Geco felice
    • Jade Gecko
    • Geco leopardo
    • Pearl Gecko
    • Tiny Gecko
    • Wonder Gecko
    • Zero Gecko
  • Synopsys
  • ARCO
    • ARC 600
    • ARC 700
    • ARC EM
    • ARC HS
  • Texas Instruments
    • C674x
    • C64x +
    • Ercole
    • MSP430
    • SimpleLink MSP432
    • Sitara
    • Tiva-C
  • Xilinx
    • Microblaze
    • Zynq-7000
    • Zynq UltraScale +

Storia

ThreadX è stato introdotto per la prima volta nel 1997. ThreadX 4 è stato introdotto nel 2001. ThreadX 5 è stato introdotto nel 2005 ed è l'ultima versione del 2020.

FileX: il file system incorporato per ThreadX è stato introdotto nel 1999.

NetX: lo stack di rete TCP / IP integrato per ThreadX è stato introdotto nel 2002.

USBX: il supporto USB incorporato per ThreadX è stato introdotto nel 2004.

ThreadX SMP per ambienti multi-core SMP è stato introdotto nel 2009.

I moduli ThreadX sono stati introdotti nel 2011.

ThreadX ha ottenuto le certificazioni di sicurezza per: TÜV IEC 61508 nel 2013 e UL 60730 nel 2014.

GUIX: l'interfaccia utente incorporata per ThreadX è stata introdotta nel 2014.

Express Logic è stato acquistato per una somma non divulgata da Microsoft il 18 aprile 2019.

Tecnologia

ThreadX implementa un algoritmo di pianificazione preventivo basato sulla priorità con una funzionalità proprietaria chiamata soglia di prelazione. Quest'ultimo ha dimostrato di fornire una maggiore granularità all'interno delle sezioni critiche, ridurre i cambi di contesto ed è stato oggetto di ricerche accademiche sulla garanzia della programmazione.

ThreadX fornisce un costrutto univoco chiamato concatenamento di eventi, in cui l'applicazione può registrare una funzione di callback su tutte le interfacce di programmazione dell'applicazione (API) che possono segnalare un evento esterno. Ciò aiuta le applicazioni a concatenare vari oggetti pubblici in ThreadX in modo che un thread possa bloccare efficacemente più oggetti.

ThreadX fornisce anche semafori di conteggio , mutex con ereditarietà di priorità opzionale, flag di eventi , code di messaggi , timer software, memoria a blocchi di dimensioni fisse e memoria a blocchi di dimensioni variabili. Tutte le API in ThreadX che bloccano le risorse hanno anche un timeout opzionale.

ThreadX offre supporto per processori multi-core tramite AMP o SMP. L'isolamento del codice dell'applicazione è disponibile tramite il componente ThreadX Modules.

Componenti principali

I componenti ThreadX RTOS includono:

  1. File system incorporato
  2. Interfaccia utente grafica incorporata
  3. Rete incorporata
  4. USB integrato
  5. Certificazione di sicurezza
  6. Confezione

File system incorporato

FileX è il file system incorporato per ThreadX. FileX supporta i formati FAT12 , 16 , 32 ed exFAT . Quest'ultimo estende le dimensioni dei file FAT oltre i 4 GB, il che è particolarmente utile per i file video e richiede una licenza direttamente da Microsoft per l'uso. FileX offre anche tolleranza agli errori e supporta supporti di memoria flash NOR e NAND diretti tramite un prodotto di livellamento dell'usura flash chiamato LevelX.

Interfaccia utente grafica incorporata

GUIX è l' interfaccia utente grafica (GUI) incorporata per ThreadX. GUIX fornisce un sistema di runtime 2D (ambiente) per le applicazioni incorporate che eseguono ThreadX. GUIX supporta più dispositivi di visualizzazione con una varietà di risoluzioni dello schermo e profondità di colore. Sono disponibili molti widget grafici predefiniti . Uno strumento host Windows WYSIWYG chiamato GUIX Studio genera automaticamente codice C per GUIX da eseguire in fase di runtime.

Rete incorporata

NetX Duo è il sistema TCP / IP integrato per ThreadX. NetX Duo supporta sia la rete IPv4 che IPv6 insieme a protocolli come ARP, Auto IP, DHCP, DNS, DNS-SD, FTP, HTTP, ICMP, IGMP, mDNS, POP3, PPP, PPPoE, RARP, TFTP, SNTP, SMTP, SNMP e TELNET. La sicurezza della rete a livello IP è fornita da IPsec. La sicurezza del livello socket TCP e UDP è fornita rispettivamente da TLS e DTLS. Il supporto del protocollo IoT Cloud include CoAP, MQTT e LWM2M. NetX Duo supporta anche Thread e 6LoWPAN. Nel 2017, ThreadX e NetX Duo sono diventati un prodotto certificato Thread.

USB integrato

USBX è il sistema USB (Universal Serial Bus ) incorporato per ThreadX. USBX supporta sia l'host che il dispositivo. Il supporto del controller host include EHCI, OHCI e controller host USB proprietari. USBX supporta anche OTG. Il supporto della classe USBX include Audio, Asix, CDC / ACM, CDC / ECM, DFU, GSER, HID, PIMA, Printer, Prolific, RNDIS e Storage.

Certificazione di sicurezza

ThreadX (e FileX e NetX Duo) sono stati precertificati da SGS-TÜV Saar in base ai seguenti standard di sicurezza: IEC 61508 SIL 4, IEC 62304 Classe C, ISO 26262 ASIL D e EN 50128 SW-SIL 4.

ThreadX (e FileX e NetX Duo) sono stati precertificati da UL in base ai seguenti standard di sicurezza: UL / IEC 60730, UL / IEC 60335, UL 1998

ThreadX è stato inoltre certificato secondo gli standard DO-178 da varie società militari e aerospaziali. È supportato dalle popolari librerie Transport Layer Security (SSL / TLS) come wolfSSL .

Confezione

A partire dal 2017, ThreadX fa parte della piattaforma X-Ware IoT in codice sorgente completo e senza pagamento di royalty in runtime .

Prodotti che lo utilizzano

Alcuni prodotti di alto profilo che utilizzano gamma ThreadX dai piccoli dispositivi indossabili, per stampanti Hewlett-Packard , e anche la NASA ‘s Deep Impact sonda spaziale .

La linea di computer a scheda singola Raspberry Pi esegue ThreadX come blob binario sull'unità di elaborazione grafica (GPU). Questo controlla l' avvio iniziale , che a sua volta viene utilizzato per avviare sistemi operativi secondari come Linux , e continua a funzionare in un ruolo più privilegiato anche dopo il processo di avvio.

Guarda anche

Riferimenti

link esterno