Pregunta

Me estoy tomando un curso de introducción (3 meses) sobre el diseño de sistemas de tiempo real, pero cualquier aplicación.

Me gustaría construir algo que dejo a entender mejor lo que voy a aprender en teoría, pero ya que nunca he hecho ningún sistema en tiempo real que no puedo estimar cuánto tiempo tomará cualquier proyecto. Sería un proyecto de prueba de concepto, o algo así, dado mi tiempo disponible y el conocimiento.

Por favor, ¿me podría dar alguna idea? Gracias de antemano.

Me Programm en TSQL, Delphi y C #, pero yo no voy a tener ningún problema en el aprendizaje de otro idioma.

¿Fue útil?

Solución

Trate de pensar en tareas de tiempo real que son críticos en el tiempo, por ejemplo de reproducción de vídeo, lo que falla si las tareas no han terminado (por ejemplo, el cálculo de la siguiente trama) en el tiempo.

También se puede pensar en algunas soluciones industriales, pero son probablemente más difíciles de estudiar en su entorno local.

Otros consejos

Sugiere que considerar la exploración de la en tiempo real Especificación para Java (RTSJ) . Si bien no es un entorno tradicional para la construcción de software en tiempo real, es una tecnología de arriba-y-venir con mucho interés. Aún mejor, se puede presenciar algunos de los debates en curso sobre lo que importa y lo que no en sistemas de tiempo real.

JavaRTS Sun está disponible gratuitamente para su descarga, y tiene algunos demostraciones interesantes disponibles a mostrar un comportamiento determinista, y mostrar su colector de basura RT.

En términos de un proyecto específico, le sugiero que comience simple: 1) Construir una obra-generador que se puede sintonizar a consumir una determinada cantidad de tiempo de CPU; 2) poner esto en un marco que puede producir una distribución de tareas de trabajo-generador (como hilos, o como trozos de trabajo ejecutado en un hilo) y un mecanismo para registrar el trabajo producido; 3) Producir cartas del tiempo de ejecución, tiempo de permanencia, plazo, holgura / invadida de estas tareas frente a su prioridad; 4) demuestran que las tareas en ejecución en el contexto de hilos en tiempo real (vice de tiempo compartido) se comportan de manera diferente.

Los puntos de bonificación si se puede medir la sobrecarga en el programador determinando en qué suministrado carga (tiempo de CPU total producido por sus tareas generador de trabajo dividido por el tiempo de reloj de pared) comienzan sus tareas plazos que faltan.

Se debe considerar definitivamente la construcción de su sistema usando una placa de desarrollo de hardware equipado con un pequeño procesador (ARM, PIC, AVR, cualquiera puede servir). Esto realmente ayudó a eliminar el miedo del bajo nivel cuando empecé a desarrollar. Vas a tener que utilizar C o C ++ sin embargo.

A continuación, tendrá dos alternativas:. O bien ir desnudo-metal, o utilizar un sistema operativo en tiempo real

El ir desnudo-metal, se puede aprender:

  • ¿Cómo inicializar su procesador a partir de cero y lo más importante cómo utilizar las interrupciones, que son la forma más rápida de lo que tiene que responder a un evento externel
  • ¿Cómo implementar los hilos ligeros con el cambio de contexto rápido, algo que todos los instrumentos en tiempo real del sistema operativo
  • Para facilitar esto un poco, buscar un kit de desarrollo que viene con una gran cantidad de documentación y código fuente. He usado incrustado Artistas placas ARM y te dan una gran cantidad de material.

Ir con la RT SO:

  • Usted vía rápida su proyecto, y será capaz de aprender cómo ajustar un sistema operativo RT
  • Usted puede probar su mano en un sistema operativo de código abierto, como Linux o BSD, y aprender mucho del código fuente

Cualquier opción es buena, obtendrá un proyecto práctico muy fresco para mostrar apagado y es de esperar entender mejor su material del curso. Buena suerte!

Como la mayoría de los sistemas de tiempo real todavía se implementan en C o C ++ que puede ser bueno para refrescar su conocimiento de estos lenguajes de programación. Muchos sistemas de tiempo real también están integrados los sistemas, lo que podría querer jugar con una fuente libre y barato como uno BeagleBoard ( http: // BeagleBoard .org / ). Esto también le dará la oportunidad de aprender acerca de compilación cruzada, etc.

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