FreeRTOS: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Fixati diversi link e altro
Inserito template Portale e aggiunta di alcuni collegamenti
Riga 11:
| licenza = Modified [[GNU General Public License|GPL]]
| sito_web = [http://www.freertos.org Il sito di FreeRTOS.]
}}'''FreeRTOS'''  è un popolare kernel di sistema operativo in real-time utilizzato nei [[Sistema embedded|dispositivi embedded]]. È distribuito sotto la licenza [[GNU General Public License|GPL]] con restrizioni supplementari ed eccezioni opzionali. Le restrizioni vietano l'analisi comparativa mentre l'eccezione consente agli utenti proprietari del codice di conservare il codice sorgente, mantenendo il kernel stesso in [[open source]]''. ''Quindi, in tal modo si facilità l'uso di FreeRTOS nelle applicazioni proprietarie.
 
== Implementazione ==
Riga 17:
 
FreeRTOS fornisce alcuni metodi per la creazione di [[Thread (informatica)|threads]] o istruzioni multiple, [[Lock|mutexes]], [[Semaforo (informatica)|semafori]] and [[temporizzatori]]. La modalità in [[tickless kernel]] è utilizzata per le applicazioni che richiedono una bassa potenza. FreeRTOS supporta e gestisce le priorità dei thread. Le applicazioni che vengono utilizzate tramite FreeRTOS possono essere completamente allocate. In alternativa gli oggetti RTOS possono essere allocati in modo dinamico con cinque schemi di assegnazione previsti:
<div data-reactroot="" class="_e725ae-textarea_btn _e725ae-show _e725ae-minimized _e725ae-minimize_transition _e725ae-anonymous _e725ae-field_hovered" style="z-index: 2; transform: translate(405.92px, 1454.7px);"><div class="_e725ae-transform_wrap"></div></div>
* solo allocazione;
* allocazione e deallocazione con un semplice e rapido algoritmo;
* una più complessa ma più veloce allocazione e deallocazione con [[Coalescenza (informatica)|memoria coalescente]];
* un'alternativa al più complesso schema che comprende la coalescenza della memoria che consente di interrompere molte più aree di memoria;<br>
* allocazione e deallocazione di[[Libreria standard del C| librerie in C]] con protezione in mutua esclusione.
 
Riga 28 ⟶ 27:
FreeRTOS implementa più thread, avendo il programma host che richiama un metodo a brevi intervalli regolari. Il metodo del'' tick thread'' commuta le attività a seconda della priorità e di uno schema di pianificazione. L'intervallo solitamente è compreso in un range tra 1/1000 ed 1/100 di secondo, eccetto in casi di interrupt derivanti dal timer dell'hardware. Questo intervallo spesso viene variato per configurare particolari applicazioni.
 
Il download contiene una configurazioni preimpostata, una dimostrazione per ogni porta e il compilatore, permettendone un rapido utilizzo. Sul sito  [http://www.freertos.org FreeRTOS.org]  è presente una vasta sezione di documentazione e molti tutorial (manuali aggiuntivi e altro materiale sono disponibili a pagamento), così come dettagli sulla struttura dell'RTOS.
 
== Caratteristiche principali ==
* Esistono manuali in PDF e guide di riferimento gratuiti;
* Minima occupazione di memoria, basso [[overhead]], e veloce esecuzione dei programmi;
* Modalità [[Tickless kernel|tickless]] opzionale per applicazioni che richiedono una bassa potenza.;
* È ideale sia per gli hobbisti alle prime armi con i sistemi operativi che per gli sviluppatori professionisti che creano prodotti commerciali;
* Lo schedulatore può essere configurato sia per le operazioni preventive che per le cooperative;
* Supporta le coroutine (la coroutine in FreeRTOS è molto semplice ed è formata da processi leggeri che hanno un limitato impatto d'uso della [[stack]])
* Supporto traccia tramite macro generiche di traccia. Strumenti come Tracealyzer (cioè FreeRTOS + Trace, fornite dal partner Percepio di FreeRTOS) possono quindi registrare e visualizzare il comportamento di runtime dei sistemi basati su FreeRTOS. Ciò include la pianificazione delle attività e le chiamate del kernel per operazioni di [[Semaforo (informatica)|semaforo]] e [[Coda (informatica)|coda]]. Tracealyzer è uno strumento commerciale, ma è anche disponibile in una versione libera a funzionalità limitata. La versione completa ha un prezzo di 1066 € (US$1,200).<br>
 
== Architetture supportate ==
Riga 51 ⟶ 50:
SafeRTOS è conosciuto per la sua capacità, unica tra i sistemi operativi, di risiedere esclusivamente nella [[Read Only Memory|memoria di sola lettura]] nei chip di un microcontrollore, consentendo così la pre-certificazione di sistemi hardware e software completi all'[[IEC61508]] o ad altri [[standard]] operativi di sicurezza ed affidabilità. Quando poi viene implementato nella memoria hardware, il codice SafeRTOS può essere utilizzato solo nella sua configurazione originale, pertanto i test di certificazione delle applicazioni che utilizzano questo sistema operativo non devono riesaminare questa parte durante il processo di certificazione funzionale.
 
SafeRTOS è incluso nella [[Read Only Memory|ROM]] di alcuni microcontrollori Stellaris della [[Texas Instruments Incorporated|Texas Instruments]]. È possibile implementare SafeRTOS senza dover acquistare il codice sorgente. In questo campo di applicazione, per mappare le funzioni API nella loro posizione all'interno della ROM viene usato un semplice file ''header ''in [[C (linguaggio)|C]]. È consigliabile l'utilizzo della ROM perché il codice che contiene il file in questione non è modificabile - scartando la possibilità che un utente erroneamente acceda al codice e lo modifichi - e garantisce che la versione originale testata rimanga identica per tutto il periodo di utilizzo. Non sarà necessario riesaminare il codice dell'applicazione in modo che si evolva attorno ad esso. Il test del kernel complesso non più viene effettuato in quanto le prove di certificazione già approvate, inclusi il piano di prova, il codice e i risultati, possono essere acquistati "fuori dal piano".
 
=== OpenRTOS ===
Un altro progetto relativo al FreeRTOS, con un codice identico ma differente per licenza e prezzo, è OpenRTOS creato dall'azienda ''WITTENSTEIN Aerospace and Simulation Ltd''. I termini della licenza commerciale per OpenRTOS sopprimono ogni riferimento alla licenza GPL. Per esempio, una delle condizioni per l'utilizzo del prodotto per applicazioni commerciali pretende che l'utente dev'essere consapevole dell'uso di OpenRTOS e il relativo codice sorgente, ma non il codice dell'applicazione del prodotto commerciale, pertanto dev'essere fornito dietro richiesta.OpenRTOS è un prodotto commerciale disponibile solo tramite acquisto e non ha requisito obbligatorio di licenza; acquistandola dietro pagamento però si ha la possibilità di accedere alla documentazione integrale di supporto tecnico.
{{Portale|Informatica}}<div data-reactroot="" class="_e725ae-textarea_btn _e725ae-show _e725ae-minimized _e725ae-minimize_transition _e725ae-anonymous _e725ae-field_hovered" style="z-index: 2; transform: translate(405.92px, 6929.75px);"><div class="_e725ae-transform_wrap"></div></div><div data-reactroot="" class="_e725ae-textarea_btn _e725ae-show _e725ae-minimized _e725ae-minimize_transition _e725ae-disabled _e725ae-anonymous _e725ae-field_hovered" style="z-index: 2; transform: translate(405.92px, 7997.11px);"><div class="_e725ae-transform_wrap"></div></div>
{{Reflist|25em}}
<div data-reactroot="" class="_e725ae-textarea_btn _e725ae-show _e725ae-minimized _e725ae-minimize_transition _e725ae-disabled _e725ae-anonymous _e725ae-field_hovered" style="z-index: 2; transform: translate(405.92px, 7950.72px);"><div class="_e725ae-transform_wrap"></div></div><div data-reactroot="" class="_e725ae-textarea_btn _e725ae-show _e725ae-minimized _e725ae-minimize_transition _e725ae-disabled _e725ae-anonymous _e725ae-field_hovered" style="z-index: 2; transform: translate(405.92px, 7997.11px);"><div class="_e725ae-transform_wrap"></div></div>
[[Categoria:Sistemi operativi liberi]]
[[Categoria:Microkernel]]