Pregunta

Tengo una base de código existente dirigida a un entorno de Windows y con un ojo hacia el futuro, quisiera hacer esto como la plataforma de la cruz como sea posible.He tenido un poco de éxito con el estándar de las distribuciones de Linux mediante el uso de la plataforma de la cruz bibliotecas, pero quisiera extender este a tiempo real y / o sistemas operativos embebidos.

Sería posible que el puerto de la mayoría de la base de tales sistemas, o sería necesario que reimplentations dirigida a que el medio ambiente?Si las piezas necesitan ser recreado, ¿ el desarrollo de estos sistemas requieren de un tipo diferente de enfoque de diseño?Algunos proveedores de suministro de su propio IDE para el desarrollo, estos son una necesidad, o podemos o es posible estandarizar en un GNU toolchain tipo de proceso de construcción?

Un potencial de baches podría haber diferencias en el IPC de manejo, pero sin el riesgo de exposición es difícil de conseguir una manija en los detalles.

NB aunque basado en Windows en la actualidad, no hay un gran uso de la API de Win32 (principalmente COM) o los tipos de Windows.

Gracias

edit::el código base es C\C++

¿Fue útil?

Solución

Si está utilizando windows interfaz COM (supongo que no estamos hablando de puerto serie aquí, pero el Modelo de Objetos Común), el código necesita ser extraída lejos de eso.

Como usted habla de IPC, entonces, obviamente, este es un multi-tarea y multi-procesamiento de código de tipo de base.Con ese ser el caso, usted tendrá que de alguna manera a venir para arriba con una manera de lidiar con el entorno de diferencia.

Primero de todos, usted se necesita algún tipo de RTOS ya que su aplicación es multi-tasking.Como hizo un port para Linux, es posible que desee buscar en el uso de una versión de Linux en tiempo real.Esto reduciría al mínimo el número de puertos que tendría que hacer.

Si usted no desea utilizar Linux como plataforma embebida, hacen que el código POSIX (Linux) y asegúrese de que el RTOS elige el apoyo de POSIX.De esta manera, el puerto de Linux y la plataforma embebida sería prácticamente el mismo.

Línea de fondo, COM va a ser su albatros.

Ya que no menciona el uso de una interfaz gráfica de usuario, no la dirección que la caja de pandora :)

Otros consejos

Si la aplicación es principalmente C y posix, a continuación, no es muy difícil.Plataformas integradas hoy en día puede significar una casi copia completa de XP o Linux que se ejecuta en una tarjeta compact flash.

Para la interfaz gráfica de usuario, tanto de QT y WX han incorporado las versiones que se basan los widgets directamente.

El paso más importante es separar todos OS dependencia de las funciones del proyecto de la lógica.

Después de hacer esto, usted verá inmediatamente la cantidad de código que tiene el puerto para la migración al nuevo sistema operativo, y usted será capaz de empezar a portar muy bien.

Depende de las capacidades de su plataforma embebida.Si es de 8 bits, tiene un duro camino por delante, pero si es de 32 bits con decente RAM y tal, hay un montón de código abierto multiplataforma bibliotecas disponibles.

He utilizado DirectFB para mi último incrustado aplicación GUI, era ligero y bien, pero no de la cruz-plataforma.La próxima vez creo que voy a probar wxWidgets.

No me gusta el uso de GNU dev tools en Windows como MS Dev Studio es taaan mucho mejor que cualquier herramientas de GNU, pero recientemente he estado jugando con Wascana Desarrolladores De Escritorio el cual está basado en Eclipse y GCC y muestra promesa.

Si usted está en la posición de especificar que el tiempo real/OS incorporado de utilizar, han considerado que Windows CE?

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