Un ambiente completo per Rtos

SOFTWARE –

La soluzione μC/OS-III di Micrium offre molte caratteristiche uniche che non si trovano in altri kernel real-time.

Società statunitense che sviluppa componenti software embedded, Micrium vanta al suo attivo la partecipazione a importanti progetti, quali la sonda Curiosity e l'osservatorio radio di Owens Valley. I prodotti della società sono conosciuti per una serie di caratteristiche e vantaggi tra cui affidabilità, prestazioni, codice sorgente impeccabile, e documentazione estremamente accurata. Alcuni componenti Micrium sono certificati per soddisfare i più rigorosi standard di sicurezza delle applicazioni di elettronica medica, avionica e industriali.

Una suite completa
Micrium offre la famiglia μC/OS-III, un ambiente completo di componenti per Rtos. La suite comprende il kernel μC/OS, un File System embedded (μC/FS), uno stack Tcp/IP (μC/Tcp-IP), un'interfaccia utente grafica (μC/GUI), uno stack per periferica Usb e host (μC/Usb), e molto altro ancora. La maggior parte di questi componenti sono progettati per funzionare in stand alone. Fatta eccezione per μC/Tcp-IP, per utilizzare i vari moduli in un'applicazione non è necessario un kernel real-time. Infatti, gli utenti possono ricorrere solo ai moduli necessari.
Il perno dell'offerta Micrium è μC/OS, il kernel real-time portatile preemptivo multitasking con schedulazione opzionale round robin destinato a microprocessori, microcontrollori e Dsp, nonché a prodotti embedded e logiche programmabili. Memorizzabile su Rom, μC/OS è disponibile in varie versioni: la più recente - rilasciata nel 2009 in terza generazione - è la μC/OS III, la quale fa della facilità d'uso il suo cavallo di battaglia. μC/OS-III, infatti, è basato su un codice sorgente totalmente Ansi C, fornito con la documentazione di approfondimento necessaria per capire a fondo il suo funzionamento. Benché molti fornitori del kernel commerciali offrano la possibilità di accedere al sorgente dei loro prodotti, salvo che il codice non segua rigorosi standard di codifica e sia accompagnato da una documentazione completa di esempi che ne dimostri il funzionamento, questi prodotti possono essere ingombranti e difficili da sfruttare. μC/OS-III offre molte caratteristiche uniche che non si trovano in altri kernel real-time, come ad esempio la capacità di effettuare misurazioni delle prestazioni in fase di esecuzione, di segnalare direttamente o inviare messaggi alle task, e la possibilità di "appendere" a questi kernel altri oggetti, come semafori e code di messaggi. Il kernel gira su moltissime architetture di processore: le singole "porte" sono disponibili per il download dal sito web Micrium.

Oltre ogni limite
A differenza del suo predecessore μC/OS-II, μC/OS-III gestisce un numero illimitato di task applicative (l'unico vincolo è rappresentato dall'accesso del processore alla memoria) e di livelli di priorità, anche se in genere viene configurato tra 8 e 256 diversi livelli. μC/OS-III permette anche di gestire un numero illimitato di semafori e mutex (mutual exclusion semaphores), di flag eventi, di code di messaggio, di timer e di partizioni di memoria. L'utente può assegnare tutti gli oggetti del kernel direttamente in fase di esecuzione, sfruttando le funzioni necessarie per consentire il controllo della crescita della quantità di task. Benché le dimensioni delle task non siano limitate, esse hanno ovviamente una dimensione minima che dipende dall'architettura Cpu utilizzata. Il kernel dispone di alcune strutture dati interne e di variabili di cui ha bisogno per accedere automaticamente. Per assicurare ciò, μC/OS-III è in grado di proteggere le più regioni critiche bloccando lo scheduler invece di disabilitare gli interrupt. Gli interrupt risultano quindi disabilitati per pochissimo tempo, assicurando sempre la risposta alle sorgenti più veloci.
Oltre a un numero di priorità infinito, il kernel offre la possibilità di eseguire più task con lo stesso livello di priorità. Quando task di pari priorità sono pronte per l'esecuzione, μC/OS-III le lancia per un periodo di tempo specificato dall'utente (detto "quanta"): ogni task può rinunciare a parte della sua "quanta" di tempo se qualora non necessitasse di utilizzarla completamente. Le dimensioni del kernel (codice e dati) possono essere regolate in base ai requisiti dell'applicazione.
L'aggiunta o la rimozione delle funzionalità (ad esempio, i servizi) possono essere effettuate in fase di compilazione attraverso una quarantina di comandi (# defines). Benché le sue dimensioni possano cambiare, tipicamente sono necessari da 6 a 24 KByte di spazio di codice residente in memoria. μC/OS-III svolge anche una serie di controlli in fase di esecuzione sugli argomenti passati ai servizi, verificando in particolare che l'utente non stia trasferendo puntatori Null, non stia chiamando da ISR dei servizi a livello di task, che gli argomenti rientrino all'interno dell'intervallo consentito, che le opzioni specificate siano valide, ecc.
Questi controlli possono essere disabilitati in fase di compilazione per ridurre ulteriormente l'ingombro del codice e migliorare le prestazioni.
Il kernel può essere configurato dall'utente anche in fase di esecuzione. In particolare, tutti gli oggetti del kernel - quali stack, semafori, i gruppi di flag eventi, code dei messaggi, numero di messaggi, semafori di mutua esclusione, partizioni di memoria e timer - sono possono essere assegnati in qualsiasi momento, scongiurando l'eventuale sovra-allocazione di risorse che può essersi verificata in fase di compilazione. Il fatto che μC/OS-III sia scalabile ne permette l'uso in una vasta gamma di applicazioni e progetti. Oltre al kernel, l'ambiente Micrium prevede altri moduli utilizzabili in stand alone o assemblabili per costituire un vero sistema operativo in tempo reale.
Lo stack ClarinoxBlue
Di rilievo, gli stack software per applicazioni embedded dedicati alla comunicazione in protocollo Tcp/IP, Usb Device e Usb Host, Can Bus, Modbus e Bluetooth. Quest'ultimo - denominato ClarinoxBlue - è un semplice stack di protocollo sviluppato da Clarinox Technologies e utilizzato per gestire applicazioni complesse basate su profili Bluetooth multipli e dispositivi Bluetooth locali multipli. ClarinoxBlue offre anche un analizzatore di protocollo e un debugger built-in. Sul fronte della memorizzazione e della visualizzazione, sono disponibili un modulo per la gestione del file system, un'interfaccia grafica utente universale per qualsiasi applicazione embedded e una libreria di piccoli moduli (building blocks) relativi funzioni standard accessibili a livello di codice sorgente.
Per la sicurezza, sono la suite prevede il modulo μC/OS-MPU - dedicato alla protezione della memoria - e il modulo µC/TimeSpaceOS - il quale gestisce le risorse di memoria e tempo allocate alle varie applicazioni.
Infine si segnala µC/Probe 3.1, uno strumento di visualizzazione grafica che riproduce lo stato interno del sistema embedded.

Pubblica i tuoi commenti