Red de conocimiento informático - Conocimiento informático - Cómo elegir un sistema de gráficos integrados |

Cómo elegir un sistema de gráficos integrados |

La amplia aplicación de la electrónica de consumo de alta gama (como PDA y teléfonos móviles) ha provocado cada vez más atención al sistema operativo integrado en tiempo real, que originalmente solo se usaba en la industria militar y el control industrial. y otros campos, y la industria ha surgido en consecuencia una variedad de productos de sistemas operativos integrados en tiempo real con características únicas. Con suministros diversos, la selección se convierte en un problema difícil.

Además del sistema operativo, los sistemas gráficos integrados son el foco de los desarrolladores, y las necesidades prácticas también han generado una serie de interfaces gráficas de usuario más hermosas y fáciles de operar. Con una variedad tan deslumbrante de ofertas de mercado, ¿cómo deberían elegir los desarrolladores? Seleccionar un sistema de soporte de gráficos integrados adecuado para los productos integrados de destino se ha vuelto tan desafiante como seleccionar un sistema operativo integrado.

La realidad es que el desarrollo de GUI en sistemas integrados no es tan fácil y conveniente como el desarrollo de aplicaciones en plataformas de PC comunes. Por un lado, esto se debe a que 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. Como resultado, los desarrolladores enfrentan muchos desafíos técnicos al seleccionar un sistema de soporte GUI que sea completamente funcional y adecuado para las características del producto de destino para productos integrados con diferentes configuraciones de hardware y 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 que se utiliza en ocasiones especiales. La GUI integrada requiere simplicidad, intuición, confiabilidad, uso reducido de recursos y respuesta rápida. Especialmente en los sistemas en tiempo real se imponen grandes exigencias a la rápida respuesta de la GUI.

Los sistemas de gráficos integrados actualmente se pueden dividir aproximadamente en dos categorías. La primera categoría proporciona bibliotecas de gráficos GUI e interfaces para un determinado sistema integrado. Generalmente, se proporcionan 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 con una gran cantidad de aplicaciones y desarrolladores de aplicaciones. Ejemplos típicos de este tipo son Qtopia de TrollTech y GTK+ de GNU.

El otro tipo es el middleware de gráficos integrados proporcionado específicamente para sistemas integrados. Dichos sistemas consideran admitir diferentes entornos de hardware y diferentes sistemas operativos integrados. Para satisfacer las diferentes necesidades de los sistemas integrados, se proporcionan arquitecturas de software flexibles y escalables. Los representantes de este tipo de sistema gráfico son MiniGUI de Beijing Feynman Software, PEG de SwellSoftware y productos Tilcon de TilconSoftware. Estos sistemas generalmente son mantenidos por empresas profesionales, y el sistema GUI basado en núcleo proporciona una serie de productos, como aplicaciones, soluciones y herramientas de desarrollo clave para una determinada 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. Las tareas que satisfacen varias plataformas de hardware integradas se transfieren al sistema operativo. 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 tipo de procesamiento está en línea con el desarrollo actual de los sistemas integrados.

Con este fin, el autor entrevistó a Jiao Libo, gerente del Departamento de I+D de Feynman Software Technology Company, con el fin de analizar MiniGUI desde una perspectiva técnica y proporcionar una referencia razonable para otros fabricantes que trabajan en esto.

MiniGUI

MiniGUI es un sistema de soporte de interfaz gráfica de usuario eficiente, confiable, personalizable, compacto y flexible con plataforma cruzada de hardware y portabilidad entre 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 a principios de 1999 bajo los términos de GPL, 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 soporte gráfico y de interfaz de usuario muy completo para sistemas operativos integrados en tiempo real.

El diseño de portabilidad de MiniGUI permite que MiniGUI proporcione una interfaz de programación de aplicaciones (API) consistente para aplicaciones de capa superior sin importar en qué plataforma de hardware o sistema operativo se ejecute. MiniGUI tiene una buena arquitectura de software. La capa superior de MiniGUI y el sistema operativo subyacente están aislados mediante 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 diseñado según las características de la aplicación de los sistemas integrados. Como middleware entre sistemas operativos y aplicaciones, MiniGUI oculta las diferencias en los sistemas operativos subyacentes y las plataformas de hardware, y proporciona características funcionales consistentes para aplicaciones de capa superior. El diagrama de arquitectura general de MiniGUI se muestra en la Figura 2.

Figura 2 Diagrama de arquitectura general de MiniGUI

Durante el proceso de desarrollo, MiniGUI ha introducido muchas innovaciones tecnológicas, como gráficos y capas de abstracción de entrada, soporte para múltiples fuentes y conjuntos de caracteres múltiples. y modos de funcionamiento específicos de diferentes características del sistema operativo, etc. Es precisamente gracias a estas innovaciones tecnológicas que MiniGUI es más adaptable y flexible a los sistemas integrados en tiempo real.

Capa de abstracción de entrada y gráficos

La capa de abstracción de entrada y gráficos básicamente no tiene ningún impacto en la API de nivel superior, pero facilita enormemente la portabilidad y depuración de la MiniGUI y las aplicaciones. MiniGUI puede ejecutarse sin problemas en sistemas integrados basados ​​en i386, ARM (incluidos StrongARM, xScale, etc.), MIPS, PowerPC y CPU de gama baja como DragonBall y ColdFire.

Utilizando gráficos y capas de abstracción de entrada, también se pueden implementar motores basados ​​en estructuras de software. Por ejemplo, se puede utilizar un motor de entrada aleatoria que simula entradas del mundo real para completar pruebas automáticas 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 de color de menos de 8 bits, implementar funciones de rotación de pantalla, etc.

Compatibilidad con múltiples fuentes y conjuntos de caracteres múltiples.

Esta parte se implementa a través de las fuentes lógicas del contexto del dispositivo (DC). Tanto los tipos de fuentes como los conjuntos de caracteres se pueden expandir muy fácilmente. 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, resulta muy sencillo mostrar texto en varios idiomas diferentes al mismo tiempo en una única aplicación MiniGUI. Este soporte de conjunto de caracteres de MiniGUI es diferente del soporte tradicional de conjunto de caracteres múltiples implementado a través del código interno UNICODE. Esta implementación requiere menos recursos y es más adecuada para sistemas integrados.

Modos operativos basados ​​en las características de diferentes sistemas operativos

En comparación con los sistemas operativos tipo UNIX como Linux, los sistemas operativos integrados tradicionales en un sentido general tienen algunas particularidades. Por ejemplo, los sistemas operativos como uClinux, uC/OS-II, eCos, VxWorks, etc. generalmente se ejecutan en CPU sin MMU. En este momento, a menudo no existe el concepto de proceso, sino solo el concepto de subproceso o tarea; De esta manera, el entorno de ejecución del sistema GUI es bastante diferente. Por lo tanto, para adaptarse a diferentes entornos de sistemas operativos, MiniGUI se puede configurar en tres modos operativos: MiniGUI-Threads, MiniGUI-Processes y MiniGUI-Standalone.

Ventajas técnicas de MiniGUI

MiniGUI tiene principalmente las siguientes ventajas en términos de requisitos del sistema:

Fuerte escalabilidad

Las ricas funciones de MiniGUI y Las características configurables le permiten ejecutarse en productos de gama baja con una frecuencia de CPU de solo 60 MHz, así como en dispositivos integrados de alta gama, y ​​puede utilizar el estilo de control avanzado y las tecnologías de interfaz de diseño de MiniGUI.

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), y es un sistema operativo integrado. Proporciona un entorno gráfico completo de múltiples ventanas.

Ligera y ocupa pocos recursos

Como biblioteca de gráficos integrada liviana, MiniGUI tiene en cuenta completamente los requisitos de recursos del sistema para el hardware de dispositivos integrados, como la biblioteca MiniGUI. El espacio mínimo ocupado puede reducirse a unos 500K, que es más que suficiente para que los dispositivos integrados actuales cumplan esta condición.

Alto rendimiento y alta confiabilidad

La buena arquitectura de MiniGUI y la interfaz gráfica optimizada garantizan 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 al 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 configuración de compilació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 que los usuarios puedan adaptarla a las necesidades de aplicaciones específicas y desarrollar el software de aplicación que mejor se adapte a las necesidades del producto. MiniGUI lleva muy bien la tecnología moderna de ventanas y gráficos a los dispositivos integrados.