Pregunta

Una forma de mirarlo -. Incrustado Linux comienza con escritorio Linux y zanjas de las partes no necesarias para sistemas empotrados (? Es esto realmente cierto), mientras que eCos está diseñado desde cero para sistemas embebidos

Ahora, supongamos que un procesador ARM, probablemente brazo 7 - no el rendimiento a hacer la diferencia? En realidad, estamos hablando de un sistema de carga muy bajo, 500 transacciones máximo de un día.

Cualquier ventaja de uno sobre el otro (o FreeRTOS, etc)? La estabilidad, la madurez, el rendimiento, herramientas de desarrollo, cualquier otra cosa?

Todo lo que puedo pensar es que si soy seguro que nunca se puerto a otro o / s, entonces si voy con Linux embebido, no necesito una o / s capa de abstracción que me permite hacer pruebas unitarias en el host (escritorio Linux).

Cualquier pensamiento o comentarios? Gracias.

¿Fue útil?

Solución

Cada dispositivo que he puesto en Linux empezado desde cero y no me desnudé una versión de alguna distribución.

eCos y Linux tienen diferentes objetivos. Linux está destinado a ser una con todas las funciones del sistema Unix y en consecuencia no es tan preocupados acerca de los requisitos mínimos del sistema. eCos es un sistema operativo en tiempo real diseñado para sistemas que a menudo son recursos limitados. Hay una gran cantidad de superposición entre los dos sistemas operativos y en muchas situaciones, tanto funcionará igual de bien.

En mi experiencia, si el sistema dispone de los recursos y sus necesidades no son triviales, el desarrollo será más rápido con Linux. Es más fácil encontrar desarrolladores de Linux competentes que los desarrolladores RTOS, las herramientas son más baratos, los procesos están protegidos unos de otros, que tienden a tener una mejor visibilidad en el sistema en funcionamiento, etc.

An (mejor, en mi humilde opinión) alternativa a eCos es RTEMS ( http://www.rtems.com ) . Ha sido por más tiempo y la última vez que lo comprobé, apoyado más arquitecturas que eCos. También tiene un BSP y se ejecuta PC bajo qemu para la emulación.

Otros consejos

No hay ningún beneficio real en poner Linux en un ARM7 OMI; ARM7 no tiene MMU y la protección de la memoria es una razón principal para el uso de un sistema operativo como Linux. uClinux se ejecutará en objetivos sin una MMU, pero ha perdido una de la razón más convincente para el uso de Linux, y todavía necesita los enormes recursos de memoria (A 4M flash, memoria RAM 16M sería un mínimo sensible).

Muchos dispositivos ARM7 no tienen buses de memoria externa para la fijación de que la cantidad de memoria, y en el flash chip y RAM suelen oscilar formar 32K a 1M en función del dispositivo.

Linux no es intrínsecamente "en tiempo real". Por capacidad de tiempo real que es a menudo junto con un núcleo de tiempo real, donde Linux funciona esencialmente como la tarea de inactividad, o en objetivos con la capacidad como una máquina virtual independiente. Así que si la respuesta determinista y rápido a los eventos externos es un requisito, tendrá un RTOS como eCOS.

eCOS es grande, ya que tiene un gran ecosistema de funciones complementarias y dispositivo de soporte que compite con ofertas más comerciales. Sin embargo algo así como FreeRTOS es probable que sean más fáciles de 'poner en marcha', pero no ofrecen más que un planificador de procesos y mecanismos de comunicación entre procesos. Cosas como un sistema de archivos o necesidad de TCP / IP que se obtiene de terceros (aunque hay soluciones igualmente pequeñas y libres adecuados para sistemas embebidos para que también).

Si utiliza un simple Kernel como FreeRTOS o uC / OS-III, que no han perdido demasiado tiempo, por lo que la inversión no es un inhibidor a usar algo diferente la próxima vez. Linux, por otra parte bien puede desalentar el uso de algo más pequeño y más bien precisa la próxima vez, y recorrer los proyectos posteriores pueden costar mucho más de lo que necesitan sólo para apoyar su sistema operativo de elección.

Embedded Linux == Linux en el 99% de todos los casos. Sólo se debe configurar el kernel de manera diferente.

La mayor diferencia en el rendimiento es que con eCos puede, dependiendo de su aplicación / configuración, tiene un tiempo de respuesta esperado tiempo con Linux, está a merced del controlador de interrupciones.

Linux tiene una base de fans mucho más grande que eCos así más ayuda para el desarrollo, y es compatible con una amplia gama de CPUs. También en función de lo que los conductores que desea, puede compilar y ejecutar el programa en un PC con Linux.

Linux puede detectar Bloqueos / estancamientos y enviar respuestas automáticas / reinicia para mantener una alta disponibilidad del sistema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top