Pregunta

He estado involucrado en sistemas operativos integrados de un tipo u otro y, en general, he tenido que trabajar con lo que sea que tuviera el sistema heredado.Ahora tengo la oportunidad de empezar desde cero en un nuevo proyecto integrado.

Las principales restricciones del sistema son:

  • Necesita una interfaz basada en web.
  • Se requiere que las entradas se procesen en tiempo real (por lo que se necesita un verdadero RTOS).
  • La memoria disponible es de 32MB de RAM y FLASH.

Los sistemas operativos que el equipo ha utilizado anteriormente son VxWorks, ThreadX, uCos, pSOS y Windows CE.

¿Alguien tiene una comparación o un estudio comercial sobre la elección del sistema operativo?

¿Hay otros sistemas operativos que deberíamos considerar?(Hemos sugerido eCos y RT-Linux).

Editar: gracias por todas las respuestas hasta la fecha.Es una pena que no pueda marcar todo como "aceptado".

¿Fue útil?

Solución

Todo depende de cuánto tiempo se le asignó a su equipo para aprender un "nuevo" RTOS.
¿Hay alguna razón por la que no quieras usar algo con lo que la gente ya tiene experiencia?

Tengo mucha experiencia con vxWorks y me gusta, pero no tengo en cuenta mi opinión ya que trabajo para WindRiver.

uC/OS II tiene la ventaja de estar completamente documentado (como se explica en el código fuente) en el Libro de Labrosse.Aunque no conozco el soporte web.

Sé que pSos ya no está disponible.

También puedes echar un vistazo a esta lista de RTOS

Otros consejos

trabajé con QNX hace muchos años y no tengo más que grandes cosas que decir al respecto.Incluso en aquel entonces, QNX 4 (que es bastante voluminoso en comparación con el micronúcleo Neutrino) era perfectamente adecuado para situaciones de poca memoria (aunque 32 MB son suficientes). montones en comparación con los 1-2 MB con los que teníamos que jugar), y aunque no jugué explícitamente con ningún material basado en web, sé que Apache estaba disponible.

Creo que sería prudente evaluar cuidadosamente qué quiere decir con "RTOS".He trabajado durante años en una gran empresa que construye sistemas integrados de alto rendimiento y se refieren a ellos como "en tiempo real", aunque eso no es lo que realmente son.Tienen baja latencia y programadores deterministas, y 9 de cada 10 veces, eso es lo que realmente busca la gente cuando dice RTOS.

El verdadero tiempo real requiere soporte de hardware y probablemente no sea lo que realmente quieres decir.Si todo lo que desea es baja latencia y programación determinista (nuevamente, creo que esto es lo que la gente quiere decir el 90% de las veces cuando dice "en tiempo real"), entonces cualquier distribución de Linux funcionará bien para usted.Probablemente incluso podrías arreglártelas con Windows (aunque no estoy seguro de cómo controlas el programador de Windows...).

Nuevamente, tenga cuidado con lo que quiere decir con "tiempo real".

Compré algo de hardware de desarrollo de quemador de redHa sido muy fácil trabajar con él y está muy bien documentado.Es un RTOS que ejecuta uCLinux.Es fantástico trabajar con la empresa.

Puede ser una buena decisión seleccionar un sistema operativo con el que su equipo tenga experiencia.Sin embargo me gustaría promover dos buenas opciones de código abierto:

Ambos tienen muchas características y controladores para una amplia variedad de arquitecturas.No has mencionado qué arquitectura utilizarás.Proporcionan capas POSIX, lo cual es bueno si desea permanecer lo más portátil posible.

Además, la licencia tanto para eCos como para RTEMS es GPL, pero con la excepción de que el ejecutable que se produce al vincularlo con el kernel no está cubierto por GPL.

Las comunidades son muy activas y hay empresas que brindan apoyo comercial y desarrollo.

Estamos muy satisfechos con el sistema Keil RTX... ligero y rápido y cumple con todas nuestras estrictas limitaciones de tiempo real.También tiene algunas funciones de depuración interesantes integradas para monitorear el desbordamiento de la pila, etc.

Estoy bastante contento con Windows CE, aunque es "más pesado".

Publicar para estar de acuerdo con Ben Collins: realmente necesita determinar si tiene un requisito suave en tiempo real (principalmente para la interacción humana) o un requisito estricto en tiempo real (para interactuar con dispositivos sensibles al tiempo).

Suave también puede significar que puedes tolerar algunos contratiempos de vez en cuando.

¿Cuáles son los requisitos de confiabilidad?Mi experiencia con sistemas operativos de propósito más general como Linux integrado es que tienden a experimentar contratiempos aleatorios debido a sus optimizaciones inteligentes de casos promedio que intentan evitar la inanición y similares para tareas individuales.

VxWorks es bueno:

  1. buena documentación;
  2. herramienta de desarrollo amigable;
  3. baja latencia;
  4. programación determinista.

Sin embargo, dudo que WindRiver centre su mayor atención en Linux y que WindRiver Linux irrumpa en el mercado de WindRiver VxWorks.Menos mercado, menos exigencia de ingenieros.

Aquí está el último estudio.El último se hizo hace más de 8 años, por lo que este es el más relevante.Las tablas se pueden utilizar para agregar opciones RTOS adicionales.Notará que esta comparación se centra en máquinas más livianas, pero es igualmente aplicable a máquinas más pesadas siempre que no se requiera memoria virtual.

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

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