SEGGER embOS
embOS è un sistema operativo realtime con priorità, progettato per essere utilizzato come fondamento per lo sviluppo di applicazioni embedded realtime. E’ un RTOS con alte prestazioni e nessuna latenza* nella gestione degli interrupt, che è stato ottimizzato per un consumo minimo di RAM e ROM, così come per la velocità e versatilità. Nel corso del processo di sviluppo di embOS, le risorse limitate dei microcontrollori sono sempre state considerate. La struttura interna di embOS è stata ottimizzata in diverse applicazioni con clienti differenti, per adattarsi ai bisogni di varie industrie. embOS è pienamente compatibile con diverse piattaforme (8/16/32 bit), rendendo facile fare il porting di applicazioni su diverse CPU. La sua struttura altamente modulare assicura che solo le funzioni necessarie vengano linkate, mantenendo la dimensione in ROM molto ridotta. I task possono facilmente essere creati e comunicare in modo sicuro tra loro usando la gamma completa di meccanismi di comunicazione, quali semafori, mailbox ed eventi. Anche le Interrupt Service Routines (ISRs) possono approfittare di questi meccanismi di comunicazione.
* Gli interrupt ad alta priorità non vengono mai disattivati da embOS
Caratteristiche
- Scheduling preemptive: garantisce che tra tutti i task printi venga eseguito quello con la priorità più alta, tranne che in situazioni di inversione di priorità.
- Round-robin scheduling per i task con priorità identiche.
- La Preemption può essere disabilitata per l’intero task o per sezioni di programma.
- Non è necessaria alcuna configurazione.
- Fino a 255 priorità: ogni task può avere una propria priorità => la risposta dei task può essere definita precisamente secondo le richieste dell’applicazione.
- Numero di task illimitato (limitato solo dalla memoria disponibile).
- Numero di semafori illimitato (limitato solamente dalla memoria disponibile).
- Numero illimitato di mailbox (limitato solamente dalla memoria disponibile).
- Dimensione e numero di messaggi possono essere facilmente definiti.
- Numero illimitato di timer software (limitato solamente dalla memoria disponibile).
- La risoluzione del tick del timer può essere selezionata liberamente (1 ms di default).
- Misurazione del tempo ad alta risoluzione (più preciso del tick).
- Gestione dell’energia: il tempo di CPU inutilizzato può essere speso automaticamente in modalità di sospensione minimizzando il consumo di energia.
- Supporto completo agli interrupt: la maggior parte delle funzioni dell’API può essere usata dall’interno delle Interrupt Service Routines (ISRs).
- Nessuna latenza nella gestione degli interrupt.
- I nested interrupt sono ammessi.
- Applicazioni e progetti (BSP) per un facile inizio di sviluppo.
- La build di debug fa controlli a runtime, semplificando lo sviluppo.
- Alta precisione per il profiling dei task.
- Real time kernel viewer (embOSView) incluso.
- Codice ridotto, ma molto veloce ed efficiente.
- Utilizzo minimo della RAM.
- Core scritto in linguaggio assembly.
- Tutte le funzioni API possono essere chiamate da C/C++/assembly.
- Inizializzazione dell’hardware del microcontrollore in sorgente.
- Il BSP per qualsiasi hardware non supportato, ma con la stessa CPU, può essere facilmente scritto dall’utente.
