Domanda

Sono stato coinvolto in sistemi operativi integrati di un tipo o di un altro e in genere ho dovuto lavorare con qualunque sistema legacy. Ora ho la possibilità di ricominciare da capo un nuovo progetto incorporato.

I vincoli principali sul sistema sono:

  • Ha bisogno di un'interfaccia basata sul web.
  • Gli input devono essere elaborati in tempo reale (quindi è necessario un vero RTOS).
  • La memoria disponibile è di 32 MB di RAM e FLASH.

I sistemi operativi utilizzati in precedenza dal team sono VxWorks, ThreadX, uCos, pSOS e Windows CE.

Qualcuno ha un confronto o uno studio commerciale sulla scelta del sistema operativo?

Ci sono altri sistemi operativi che dovremmo considerare? (Abbiamo suggerito eCos e RT-Linux).

Modifica: grazie per tutte le risposte fino ad oggi. Un vero peccato non posso contrassegnare tutto come " accettato " ;.

È stato utile?

Soluzione

Tutto dipende da quanto tempo è stato assegnato alla tua squadra per imparare un "nuovo" RTOS.
Ci sono dei motivi per cui non vuoi usare qualcosa con cui le persone hanno già esperienza?

Ho molta esperienza con vxWorks e mi piace, ma ignoro la mia opinione mentre lavoro per WindRiver.

uC / OS II ha il vantaggio di essere completamente documentato (come spiegato nel codice sorgente) nel libro di Labrosse. Non so del supporto Web però.

So che pSos non è più disponibile.

Puoi anche dare un'occhiata a questo elenco di RTOS

Altri suggerimenti

Ho lavorato con QNX molti anni fa e non ho altro che grandi cose da dire al riguardo. Anche allora, QNX 4 (che è decisamente grosso rispetto al microkernel Neutrino) era perfettamente adatto per situazioni di memoria insufficiente (anche se 32 MB è oodles rispetto agli 1-2 MB con cui abbiamo dovuto giocare), e anche se non ho giocato esplicitamente con alcun materiale basato sul Web, so che Apache era disponibile.

Penso che sarebbe saggio valutare attentamente cosa intendi con "RTOS". Ho lavorato per anni in una grande azienda che costruisce sistemi embedded ad alte prestazioni e si riferiscono a loro come "in tempo reale", sebbene non sia quello che sono realmente. Sono a bassa latenza e hanno programmatori deterministici e 9 volte su 10, questo è ciò che le persone cercano davvero quando dicono RTOS.

Il vero tempo reale richiede il supporto hardware e probabilmente non è quello che intendi veramente. Se tutto ciò che desideri è una bassa latenza e una pianificazione deterministica (di nuovo, penso che questo sia ciò che la gente intende il 90% delle volte in cui dicono "in tempo reale"), allora qualsiasi distribuzione Linux funzionerebbe bene per te. Probabilmente potresti anche cavartela con Windows (non sono sicuro di come controlli lo scheduler di Windows ...).

Ancora una volta, fai attenzione a cosa intendi per " In tempo reale " ;.

Ho acquistato dell'hardware di sviluppo da netburner È stato molto facile lavorare con e molto ben documentato. È un RTOS che esegue uCLinux. È un'ottima compagnia con cui lavorare.

Potrebbe essere una saggia decisione selezionare un sistema operativo con cui il tuo team ha esperienza. Tuttavia, vorrei promuovere due buone opzioni open source:

Entrambi hanno molte caratteristiche e driver per un'ampia varietà di architetture. Non hai menzionato quale architettura utilizzerai. Forniscono livelli POSIX che sono utili se vuoi rimanere il più portatile possibile.

Anche la licenza per eCos e RTEMS è GPL ma con un'eccezione in modo che l'eseguibile che viene prodotto tramite il collegamento con il kernel non sia coperto da GPL.

Le comunità sono molto attive e ci sono aziende che forniscono supporto commerciale e sviluppo.

Siamo stati molto contenti del sistema Keil RTX .... leggero e veloce e soddisfa tutti i nostri rigorosi vincoli in tempo reale. Ha anche alcune funzioni di debug integrate per monitorare lo overflow dello stack, ecc.

Sono stato abbastanza contento di Windows CE, anche se è "più pesante".

Pubblicazione per concordare con Ben Collins: è davvero necessario determinare se si dispone di un requisito in tempo reale morbido (principalmente per l'interazione umana) o di un requisito in tempo reale difficile (per l'interfacciamento con dispositivi sensibili ai tempi).

Soft può anche significare che puoi tollerare alcuni singhiozzi ogni tanto.

Quali sono i requisiti di affidabilità? La mia esperienza con sistemi operativi più generici come Linux incorporato è che tendono a sperimentare singhiozzi casuali a causa delle loro ottimizzazioni di caso medio intelligenti che cercano di evitare la fame e simili per le singole attività.

VxWorks è buono:

  1. buona documentazione;
  2. strumento di sviluppo amichevole;
  3. bassa latenza;
  4. pianificazione deterministica.

Tuttavia, dubito che WindRiver convertirà la loro maggiore attenzione in Linux e WindRiver Linux entrerebbe nel mercato di WindRiver VxWorks. Meno mercato, meno requisiti degli ingegneri.

Ecco l'ultimo studio. L'ultimo è stato fatto più di 8 anni fa, quindi questo è molto rilevante. Le tabelle possono essere utilizzate per aggiungere ulteriori opzioni RTOS. Noterai che questo confronto si concentra su macchine più leggere ma è ugualmente applicabile a macchine più pesanti purché non sia richiesta memoria virtuale.

http: // www. embedded.com/design/operating-systems/4425751/Comparing-microcontroller-real-time-operating-systems

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top