2010-04-20 18 views
10

Un modo di vedere le cose - Linux embedded inizia con desktop Linux & scava le parti non necessarie per i sistemi embedded (è questo in realtà vero?), Mentre eCos è stato progettato da zero per sistemi embedded.Linux incorporato o eCos?

Ora, si supponga un processore ARM, probabilmente ARM 7: le prestazioni fanno la differenza? In realtà, stiamo parlando di un sistema di carico molto basso, massimo 500 transazioni al giorno.

Eventuali vantaggi l'uno rispetto all'altro (o FreeRTOS, ecc.)? Stabilità, maturità, prestazioni, strumenti di sviluppo e quant'altro?

Tutto quello che mi viene in mente è che se io sono certo che non potrò mai porta ad un altro o/s, quindi se vado con Linux embedded, non ho bisogno di un o/s Abstraction Layer per consentire io faccio test di unità su host (desktop Linux box).

Qualche idea o commento? Grazie.

+3

Se si utilizza un ARM7, probabilmente non ha una MMU. Pertanto, avrai bisogno di ucLinux, che è Linux meno il supporto della memoria virtuale. –

+0

Voto per chiudere come troppo ampio. Relativo: http://stackoverflow.com/questions/25871579/what-is-the-difference-between-rtos-and-embedded-linux –

risposta

9

Ogni dispositivo che ho messo Linux su iniziato da zero e non era una versione ridotta di una certa distribuzione.

eCos e Linux hanno obiettivi diversi. Linux è pensato per essere un sistema simile a Unix completo e di conseguenza non è così preoccupato dei requisiti minimi di sistema. eCos è un sistema operativo in tempo reale progettato per sistemi che sono spesso limitati in termini di risorse. C'è una grande sovrapposizione tra i due sistemi operativi e in molte situazioni entrambi funzioneranno altrettanto bene.

Nella mia esperienza, se il tuo sistema ha le risorse e le tue esigenze non sono banali, lo sviluppo andrà più veloce con Linux. È più facile trovare sviluppatori Linux competenti che sviluppatori RTOS, gli strumenti sono più economici, i processi sono protetti gli uni dagli altri, si tende ad avere una migliore visibilità nel sistema in esecuzione, ecc.

Un'alternativa (migliore, IMHO) a eCos è RTEMS (http://www.rtems.com). È durato più a lungo e l'ultima volta che ho controllato, supportava più architetture di eCos. Ha anche un PC BSP e gira sotto qemu per l'emulazione.

4

Linux incorporato == Linux nel 99% di tutti i casi. Basta configurare il kernel in modo diverso.

La più grande differenza nelle prestazioni è che con eCos è possibile, in base all'implementazione/configurazione, avere un tempo di risposta previsto mentre con Linux sei in balia del controller di interrupt.

Linux ha una base di fan molto più grande di eCos quindi più di aiuto per lo sviluppo, e supporta una vasta gamma di CPU. Inoltre, a seconda dei driver che desideri, puoi compilare ed eseguire il tuo programma su un PC con Linux.

Linux in grado di rilevare Blocchi/deadlock e inviare risposte automatiche/riavvia per mantenere l'alta disponibilità del sistema.

9

Non c'è alcun vantaggio reale nel mettere Linux su un IM7 ARM7; ARM7 non ha MMU e la protezione della memoria è un motivo principale per l'utilizzo di un sistema operativo come Linux. uClinux verrà eseguito su obiettivi senza MMU, ma hai perso uno dei motivi più convincenti per l'utilizzo di Linux, e hai ancora bisogno delle enormi risorse di memoria (un flash 4M, 16M di RAM sarebbe un minimo ragionevole).

Molti dispositivi ARM7 non dispongono di bus di memoria esterni per il collegamento di tanta memoria e in genere il flash e la RAM del chip variano da 32 a 1 M a seconda del dispositivo.

Linux non è intrinsecamente "in tempo reale".Per le funzionalità in tempo reale è spesso accoppiato con un kernel in tempo reale, in cui Linux viene eseguito essenzialmente come attività inattiva o su obiettivi con la capacità come una macchina virtuale separata. Quindi, se la risposta deterministica e rapida agli eventi esterni è un requisito, è necessario un RTOS come eCOS.

eCOS è eccezionale in quanto dispone di un ampio ecosistema di funzionalità aggiuntive e supporto dispositivo che rivaleggia con la maggior parte delle offerte commerciali. Tuttavia, qualcosa come FreeRTOS potrebbe essere più facile da "richiamare", ma fornire non più di uno schedulatore di thread e meccanismi di comunicazione tra processi. Cose come un file system o TCP/IP devono essere reperite da terze parti (anche se ci sono soluzioni ugualmente piccole e gratuite adatte ai sistemi embedded anche per questo).

Se si utilizza un kernel semplice come FreeRTOS o uC/OS-III, non si avrà sprecato troppo tempo, quindi l'investimento non è un ostacolo all'utilizzo di qualcos'altro la prossima volta. D'altra parte, Linux potrebbe scoraggiarvi dall'usare qualcosa di più piccolo e più strettamente mirato la prossima volta, e il tour dei progetti successivi potrebbe costare molto più del necessario per supportare il sistema operativo scelto.

Problemi correlati