Disponibile il sistema operativo in tempo reale RT-Thread 5.0

È stato pubblicato il rilascio di RT-Thread 5.0, un sistema operativo in tempo reale (RTOS) per dispositivi Internet of Things. Il sistema è stato sviluppato dal 2006 da una comunità di sviluppatori cinesi ed è attualmente stato portato su quasi 200 schede, chip e microcontrollori basati su architetture x86, ARM, MIPS, C-SKY, Xtensa, ARC e RISC-V. La build minimalista RT-Thread (Nano) richiede solo 3 KB di Flash e 1.2 KB di RAM per funzionare. Per i dispositivi IoT che non hanno risorse molto limitate, viene offerta una versione completa che supporta la gestione dei pacchetti, configuratori, uno stack di rete, pacchetti con l'implementazione di un'interfaccia grafica, sistemi di controllo vocale, DBMS, servizi di rete e motori per l'esecuzione script. Il codice è scritto in C e distribuito sotto la licenza Apache 2.0.

Caratteristiche della piattaforma:

  • Supporto all'architettura:
    • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (sono supportati i microcontrollori di produttori come ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP).
    • ARM Cortex-R4.
    • ARM Cortex-A8/A9 (NXP).
    • ARM7 (Samsung).
    • ARM9 (Allwinner, Xilinx, GOKE).
    • ARM11 (Fullhan).
    • MIPS32 (Loongson, Ingenic).
    • RISC-V RV32E/RV32I[F]/RV64[D] (sifivo, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head).
    • ARCO (SINOSSI)
    • DSP(TI).
    • C-Sky.
    • x86.
  • Architettura modulare estensibile che consente di creare un ambiente adatto a sistemi con risorse limitate (requisiti minimi - 3 KB Flash e 1.2 KB RAM).
  • Supporto per varie interfacce standard per lo sviluppo di programmi, come POSIX, CMSIS, API C++. Il livello RTduino è stato sviluppato separatamente per la compatibilità con l'API e le librerie del progetto Arduino.
  • Possibilità di espansione attraverso un sistema di pacchetti e componenti plug-in.
  • Supporto allo sviluppo di applicazioni per l'elaborazione delle informazioni ad alte prestazioni.
  • Sistema flessibile di gestione dell'energia che consente di mettere automaticamente il dispositivo in modalità sospensione e di controllare dinamicamente la tensione e la frequenza in base al carico.
  • Supporto hardware per crittografia e decrittografia, fornitura di librerie con vari algoritmi crittografici.
  • Interfaccia unificata per l'accesso a dispositivi periferici e apparecchiature aggiuntive.
  • File system virtuale e disponibilità di driver per file system come FAT, UFFS, NFSv3, ROMFS e RAMFS.
  • Stack di protocolli per TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M, ecc.
  • Un sistema per la consegna e l'installazione remota di aggiornamenti che supporta la crittografia e la verifica utilizzando una firma digitale, la ripresa di un'installazione interrotta, il ripristino da un errore, il rollback delle modifiche, ecc.
  • Un sistema di moduli del kernel caricati dinamicamente che consente di creare e sviluppare separatamente componenti del kernel e di caricarli dinamicamente quando necessario.
  • Supporta vari pacchetti di terze parti, come Yaffs2, SQLite, FreeModbus, Canopen, ecc.
  • La possibilità di compilare direttamente un pacchetto BSP (Board Support Package) con componenti per supportare una piattaforma hardware specifica e caricarlo sulla scheda.
  • Disponibilità di un emulatore (BSP qemu-vexpress-a9), che permette di sviluppare applicazioni senza utilizzare vere e proprie schede.
  • Supporto per compilatori e strumenti di sviluppo comuni come GCC, MDK Keil e IAR.
  • Sviluppo del nostro ambiente di sviluppo integrato RT-Thread Studio IDE, che consente di creare ed eseguire il debug di applicazioni, caricarle su schede e gestire le impostazioni. I plugin di sviluppo per RT-Thread sono disponibili anche per Eclipse e VS Code.
    Disponibile il sistema operativo in tempo reale RT-Thread 5.0
  • La presenza dell'interfaccia Env console, che semplifica la creazione di progetti e la configurazione dell'ambiente.
    Disponibile il sistema operativo in tempo reale RT-Thread 5.0

Il sistema operativo è costituito da tre livelli fondamentali:

  • Un kernel che consente l'esecuzione delle attività in tempo reale. Il kernel fornisce primitive di base generiche che coprono aree quali la gestione dei blocchi e la sincronizzazione dei dati, la pianificazione delle attività, la gestione dei thread, la gestione dei segnali, l'accodamento dei messaggi, la gestione del timer e la gestione della memoria. Le funzionalità specifiche dell'hardware sono implementate ai livelli libcpu e BSP, che includono i driver e il codice necessari per supportare la CPU.
  • Componenti e servizi che vengono eseguiti sul kernel e offrono astrazioni come file system virtuale, sistema di gestione delle eccezioni, archiviazione di chiavi/valori, interfaccia a riga di comando FinSH, stack di rete (LwIP) e framework di rete, librerie di supporto dei dispositivi, sottosistema audio, stack wireless, componenti per supportare Wi-Fi, LoRa, Bluetooth, 2G/4G. L'architettura modulare consente di connettere componenti e servizi in base alle attività e alle risorse hardware disponibili.
  • Pacchetti software. I componenti software di uso generale e le librerie di funzioni sono distribuiti e installati sotto forma di pacchetti. Il repository comprende attualmente più di 450 pacchetti, che offrono di tutto, dalle interfacce grafiche, applicazioni multimediali e applicazioni di rete ai sistemi di controllo robot e processori basati sull'apprendimento automatico. I pacchetti forniscono anche motori per organizzare l'esecuzione di programmi nei linguaggi Lua, JerryScript, MicroPython, PikaScript e Rust (rtt_rust).

Disponibile il sistema operativo in tempo reale RT-Thread 5.0

Tra le novità aggiunte nella versione 5.0, possiamo notare un miglioramento significativo nel supporto per i sistemi multi-core e multi-thread (ad esempio, lo stack di rete e i file system sono adattati per funzionare in modalità multi-thread, lo scheduler è diviso in opzioni per sistemi single-core e SMP). Aggiunta l'implementazione di TLS (Thread Local Storage). Supporto migliorato per i chip Cortex-A. Supporto notevolmente migliorato per i sistemi a 64 bit (lo stack TCP/IP e i file system sono verificati per i sistemi a 64 bit). I componenti di gestione della memoria flash sono integrati. Il toolkit per la creazione dei driver è stato riprogettato.

Fonte: opennet.ru

Aggiungi un commento