Cómo elegir un sistema de formas incrustadas |
Además de los sistemas operativos, los sistemas gráficos integrados son el foco de los desarrolladores, y las necesidades reales también han dado lugar a muchas interfaces gráficas de usuario más hermosas y convenientes. Con una variedad tan deslumbrante de ofertas de mercado, ¿cómo deberían elegir los desarrolladores? Seleccionar el sistema de soporte de gráficos integrados apropiado para un producto integrado de destino se ha vuelto tan desafiante como seleccionar un sistema operativo integrado.
Sin embargo, la realidad es que el desarrollo de GUI en sistemas integrados no es tan simple y conveniente como el desarrollo de aplicaciones en plataformas de PC comunes. Por un lado, los recursos disponibles del dispositivo son limitados (potencia informática de la CPU, espacio de almacenamiento estático y dinámico, etc.) y, por otro lado, los mecanismos subyacentes proporcionados por el sistema operativo son limitados. De esta manera, los desarrolladores enfrentan muchos desafíos técnicos al elegir un sistema de soporte GUI completamente funcional adecuado para las características del producto de destino para productos integrados con diferentes configuraciones de hardware y diferentes sistemas operativos integrados en tiempo real.
Estado actual de la tecnología de gráficos integrados
La GUI integrada proporciona una interfaz de interacción persona-computadora para sistemas integrados en ocasiones especiales. La GUI integrada debe ser simple, intuitiva, confiable, ocupar menos recursos y responder rápidamente. Especialmente en los sistemas en tiempo real se imponen grandes exigencias a la rápida respuesta de la GUI.
En la actualidad, los sistemas de gráficos integrados se pueden dividir a grandes rasgos en dos categorías. Una es proporcionar bibliotecas de gráficos GUI e interfaces para sistemas integrados, proporcionando generalmente soluciones y aplicaciones completas basadas en GUI. A excepción de WinCE de Microsoft, la mayoría de ellos se desarrollaron con el desarrollo de Linux integrado. Existen productos de escritorio maduros en Linux y una gran cantidad de aplicaciones y desarrolladores de aplicaciones. Ejemplos típicos de este tipo incluyen Qtopia de TrollTech y GTK++ de GNU.
El otro es el middleware de gráficos integrados proporcionado específicamente para sistemas integrados. Un sistema de este tipo debería admitir diferentes entornos de hardware y diferentes sistemas operativos integrados. Para satisfacer las diferentes necesidades de los sistemas integrados, se proporciona una arquitectura de software flexible y escalable. Los sistemas gráficos representativos incluyen MiniGUI de Beijing Feynman Software, PEG de SwellSoftware y productos Tilcon de TilconSoftware. Este tipo de sistema generalmente lo mantienen empresas profesionales. El sistema GUI basado en núcleo proporciona una serie de productos, como aplicaciones clave, soluciones, herramientas de desarrollo, etc., para una industria.
A diferencia del kernel del sistema WinCE de Microsoft que admite sistemas gráficos, la mayoría de los sistemas integrados admiten sistemas gráficos a través de la capa de aplicación. Los sistemas gráficos que admiten un único sistema operativo pueden utilizar varias llamadas al sistema para optimizar el rendimiento del sistema. Deje que el sistema operativo se encargue de las tareas que satisfacen varias plataformas de hardware integradas. Este enfoque limita las capacidades entre sistemas del sistema de gráficos. Middleware de gráficos que admite múltiples sistemas operativos y múltiples plataformas de hardware A través de una arquitectura de sistema optimizada, puede resolver varios problemas de hardware de plataformas integradas, manejar de manera centralizada problemas relacionados con los gráficos y proporcionar una excelente plataforma de sistema de gráficos para el sistema. Este procesamiento es consistente con el desarrollo de sistemas integrados.
Con este fin, el autor entrevistó a Jiao Libo, gerente de I+D de Feynman Software Technology Company, para analizar MiniGUI desde una perspectiva técnica y proporcionar referencias razonables para otros fabricantes comprometidos con MiniGUI.
MiniGUI
MiniGUI es un sistema de soporte de interfaz gráfica de usuario eficiente, confiable, personalizable, compacto y flexible con portabilidad a través de plataformas de hardware y sistemas operativos. Al mismo tiempo, es un sistema de soporte de interfaz gráfica de usuario liviano para sistemas integrados en tiempo real. Desde que se lanzó la primera versión bajo términos de GPL a principios de 1999, MiniGUI se ha utilizado ampliamente en productos y campos como terminales de información portátiles, decodificadores, sistemas de control industrial e instrumentos industriales.
MiniGUI proporciona gráficos perfectos y soporte de interfaz de usuario para sistemas operativos integrados en tiempo real. El diseño de portabilidad de MiniGUI hace posible que las aplicaciones de capa superior proporcionen interfaces de programación de aplicaciones (API) consistentes sin importar en qué plataforma de hardware o sistema operativo se ejecuten.
MiniGUI tiene una muy buena arquitectura de software. Los sistemas operativos superior e inferior de MiniGUI están separados por una capa de abstracción, como se muestra en la Figura 1.
Figura 1 Diagrama de arquitectura del software MiniGUI
MiniGUI es un sistema completo de soporte de gráficos, adecuado para las características de aplicación de sistemas integrados. Como middleware entre sistemas operativos y aplicaciones, MiniGUI oculta las diferencias entre los sistemas operativos subyacentes y las plataformas de hardware y proporciona características funcionales consistentes para aplicaciones de capa superior. La arquitectura general de MiniGUI se muestra en la Figura 2.
Figura 2 Diagrama de arquitectura general de MiniGUI
Durante el proceso de desarrollo de MiniGUI, se introdujeron muchas innovaciones técnicas, como gráficos y capa de abstracción de entrada, conjunto de múltiples fuentes y múltiples caracteres. soporte, modos de funcionamiento de diferentes características del sistema operativo, etc. Son estas innovaciones tecnológicas las que hacen que MiniGUI sea más adaptable y flexible para sistemas integrados en tiempo real.
Capa de abstracción de entrada y gráficos
La capa de abstracción de entrada y gráficos tiene poco impacto en la API superior, pero facilita enormemente la portabilidad y depuración de MiniGUI y sus aplicaciones. MiniGUI puede ejecutarse sin problemas en sistemas integrados basados en i386 y ARM (incluidos StrongARM, xScale, etc.). ), MIPS, PowerPC y CPU de gama baja como Longzhu y ColdFire.
Los motores basados en estructuras de software también se pueden implementar utilizando gráficos y capas de abstracción de entrada. Por ejemplo, un motor de entrada aleatoria que simula una entrada real puede completar pruebas automatizadas de aplicaciones. Podemos admitir dispositivos de salida YUV a través del motor de gráficos Shadow, brindar soporte para chips gráficos que no pueden acceder directamente al búfer de cuadros de pantalla, brindar soporte para pantallas en color de menos de 8 bits e implementar funciones de rotación de pantalla.
Compatibilidad con múltiples fuentes y conjuntos de caracteres múltiples
Esto se implementa parcialmente mediante fuentes lógicas de contexto (DC) del dispositivo y se puede ampliar fácilmente independientemente del tipo de fuente o conjunto de caracteres. Al utilizar funciones como DrawText, puede obtener compatibilidad con varios conjuntos de caracteres especificando fuentes, como GB2312, GBK, UNICODE (codificación UTF-8, UTF-16), etc. De esta forma, es muy sencillo mostrar múltiples caracteres de diferentes idiomas en una única aplicación MiniGUI. Este soporte de juego de caracteres de MiniGUI es diferente del soporte de juego de caracteres múltiples implementado por el código interno UNICODE tradicional. Consume menos recursos y es más adecuado para sistemas integrados.
Modos de operación basados en diferentes características del sistema operativo
En comparación con los sistemas operativos tipo UNIX como Linux, los sistemas operativos integrados tradicionales generalmente tienen algunas particularidades. Por ejemplo, uClinux, uC/OS-II, eCos, VxWorks y otros sistemas operativos. Por lo general, se ejecuta en una CPU sin MMU; en este momento, a menudo no existe el concepto de proceso, solo el concepto de subproceso o tarea, y el entorno de ejecución del sistema GUI es muy diferente. Por lo tanto, para adaptarse a diferentes entornos de sistemas operativos, MiniGUI se puede configurar en tres modos operativos: MiniGUI-thread, MiniGUI-process y MiniGUI-independiente.
Ventajas técnicas de MiniGUI
MiniGUI tiene las siguientes ventajas en términos de requisitos del sistema:
Potente escalabilidad
Funciones ricas y características configurables de MiniGUI , lo que le permite funcionar no sólo en productos de gama baja con una frecuencia de CPU de sólo 60 MHz, sino también en dispositivos integrados de gama alta, y puede utilizar el estilo de control avanzado y la tecnología de interfaz de máscara de MiniGUI para crear una interfaz de usuario magnífica. Al mismo tiempo, sus características entre sistemas operativos permiten que MiniGUI se ejecute no solo en el sistema operativo integrado más simple, sino también en sistemas operativos integrados con características de sistemas operativos modernos (como Linux), proporcionando a los sistemas Linux integrados una ventana múltiple completa. entorno gráfico.
Ligera y consume menos recursos.
Como biblioteca de gráficos integrada ligera, MiniGUI considera plenamente los requisitos de los recursos del sistema para el hardware del dispositivo integrado. Por ejemplo, el espacio mínimo que ocupa la biblioteca MiniGUI se puede reducir a unos 500K, lo que es más que suficiente para los dispositivos integrados actuales.
Alto rendimiento y alta confiabilidad
La buena arquitectura de MiniGUI y su interfaz gráfica optimizada pueden garantizar la velocidad de dibujo de gráficos más rápida. Teniendo en cuenta las características de los sistemas integrados en tiempo real, MiniGUI llevó a cabo mucha investigación y desarrollo sobre el dibujo de gráficos en un entorno de ventanas múltiples desde el comienzo de su diseño, optimizando el rendimiento del dibujo de gráficos y el uso de recursos de MiniGUI. La aplicación en una gran cantidad de sistemas prácticos, especialmente en sistemas de control industrial, demuestra el alto rendimiento de MiniGUI.
Configurabilidad
Para satisfacer las diferentes necesidades de los sistemas integrados, el sistema GUI debe ser configurable. Al igual que el kernel de Linux, MiniGUI también implementa una gran cantidad de opciones de compilación y configuración para satisfacer las diversas necesidades de los sistemas integrados. A través de estas opciones, puede especificar qué funciones están incluidas en la biblioteca MiniGUI y qué funciones no.
Estas opciones de configuración mejoran enormemente la flexibilidad de MiniGUI. Para los usuarios, el software de aplicación se puede personalizar de acuerdo con las necesidades específicas de la aplicación y se puede desarrollar el software de aplicación más adecuado. MiniGUI introduce bien la tecnología moderna de ventanas y gráficos en dispositivos integrados.