Download Estructura de SVGALIB

Document related concepts
Transcript
Librería gráfica de bajo nivel
para el sistema operativo de
tiempo real MaRTE OS
Autor: José Luis Mantecón Crespo
Estructura del proyecto







Introducción
Librería gráfica SVGALIB
Librería gráfica SVGALIB en MaRTE OS
Librería de representación de imágenes XPM
Conclusiones
Líneas futuras
Programas de demostración
Introducción
Sistemas empotrados de tiempo real



Uno o varios computadores, dispositivos hardware de entrada/entrada
salida y software de propósito especial
Se considera empotrado si es un componente integral de un sistema
mayor, se usa para controlar, monitorizar o procesar la información de ese
sistema y usa dispositivos hardware especiales.
Fuerte interacción con el entorno




cambia con el tiempo
sistema controla o reacciona simultáneamente
Software concurrente
Funcionamiento correcto


Resultados del cálculo
Instante en el que se generan
Introducción
Dispositivos de entrada/salida

Subsistemas electrónicos

Adquisición de información por el computador (dispositivos de entrada)

Muestra de resultados de un proceso realizado por el computador al
usuario (dispositivos de salida)


ratones, teclados, impresoras, monitores,…
conversores A/D, fotodetectores, sensores de presión, paneles de control,-…
Dispositivos de vídeo

Dispositivo de salida

Controlador gráfico, memoria de vídeo, interfaz controlador-computador,
monitor, interfaz controlador-monitor

Drivers de manejo.
Introducción
MaRTE OS

Minimal Real-Time Operating System for Embedded Applications

Subconjunto mínimo de POSIX.13

Desarrollo de aplicaciones en Ada y C

En crecimiento (se está añadiendo nueva funcionalidad)

Disponible bajo la licencia GPL (GNU)
Entorno MaRTE OS
Introducción
Objetivos del proyecto

Principal


Aportación a MaRTE OS de librería gráfica integrada en un driver de
entrada/salida
Concretos

Control de una tarjeta gráfica

Librería de dibujo básica

Librería de imágenes fijas

Programas de demostración

Análisis temporal
Librería gráfica SVGALIB

Historia de las tarjetas gráficas en los PCs







MDA(80x25)
CGA
EGA
VGA
SVGA(1024x768)
XGA,SXGA,UXGA(1600x1200)
Sistema de vídeo


Encargado de mostrar textos y gráficos en la pantalla
Tarjeta gráfica (A/D,RAM,controlador), monitor, interfaz monitor-tarjeta
Librería gráfica SVGALIB
SVGALIB






librería gráfica de bajo nivel
para linux
Código libre
basada en librería VGALIB
1.2 de Tommy Frandsen
Varios programadores
Funciones básicas para
manejo de tarjeta Svga
Varias tarjetas soportadas
Estructura de SVGALIB
Librería gráfica SVGALIB
SVGALIB: Funciones












Modificación registros de tarjeta
Test de tarjetagráfica
Inicialización de tarjeta gráfica
Elección modo de vídeo
Elección de la página de memoria
Comprobación de los modos disponibles
Dirección de inicio de la memoria de vídeo
Valores modo de vídeo (anchura, altura, profundidad de píxels,…)
Funciones de aceleración gráfica
Función de direccionamiento lineal de la memoria de vídeo
Soporte ratón, teclado y joystick
Soporte segundo plano
Librería gráfica SVGALIB
Tarjeta S3TRIO64










Procesador gráfico de 64 bits
Memoria de 1 Mbyte
Conversor A/Dl integrado de 135 Mhz
Modos VGA a partir de 256 colores
Modos SVGA 800x600x32 y 1024x768x16
Refresco vertical de pantalla hasta 85 Hz
Compatibilidad con VESA
Compatibilidad familia TRIO64
Filtrado vertical
Conexión PCI
Esquema de S3TRIO64
Librería SVGALIB en MaRTE OS





Introducción
Arquitectura de la librería SVGALIB de
MaRTE OS
Especificación de la librería SVGALIB de
MaRTE OS
Desarrollo de la librería SVGALIB en
MaRTE OS
Funciones de edición de imagen
Librería SVGALIB en MaRTE OS
Consideraciones previas a la adaptación de
código

Disponibilidad de código fuente (GPL)

No hay seguridad de funcionamiento

Existen dependencias con sistema operativo previo


No se dispone de información de acompañamiento (manuales,
tutoriales, …)
Continua evolución de la librería original
Librería SVGALIB en MaRTE OS
Arquitectura SVGALIB
de MaRTE OS


Funciones de inicio (elección modo,
DAC, tarjeta, …)
Funciones básicas



Dibujo (color, píxel, línea)
Edición de imagen (scroll, copiado,
pegado)
Funciones primitivas (píxel, recta,
rectángulo, elipse, circunferencia,
polilínea, polígono,texto y figuras
rellenas
Arquitectura en MaRTE OS
Librería SVGALIB en MaRTE OS
Adaptación de SVGALIB a MaRTE OS




Eliminación de dependencias (carencia de sistema de archivos y acceso a la
BIOS)
Nuevos tipos de datos para aumentar nivel de abstracción (punto, ...)
Cambios en las operaciones de I/O y acceso al bus PCI
Creación de funciones de inicialización







Acceso directo a memoria de vídeo
Utilización de memoria intermedia
Creación de primitivas de dibujo
Creación de funciones de edición de imagen
Modificación del driver de tarjeta S3 TRIO64
Creación del manual de uso
Tabla de tiempos de ejecución
Librería de representación de
imágenes XPM



Formato XPM
Estructura de la librería XPM 1.0 para
MaRTE OS
Desarrollo de la librería XPM para MaRTE
OS 1.0
Librería de representación de
imágenes XPM
Formato XPM


Formato basado en ASCII
Estructura en forma de array de
cadenas de caracteres en lenguaje
C


Posibilidad de incorporar la imagen
directamente al código
Utilizado en sistemas X-Windows
Imagen en XPM
Librería de representación de
imágenes XPM
Desarrollo librería XPM 1.0 para MaRTE OS

Función para dibujo de una imagen completa

Función para dibujo de una parte de una imagen

Manual de uso

Tabla de tiempos de ejecución
Conclusiones

Dotación de librería gráfica básica

Control de tarjeta S3 TRIO64

Programas de demostración

Manual de uso de nuestra librería

Tiempos de respuesta acotados

Librería para dibujo de imágenes fijas
Lineas futuras

Adaptación de los drivers de más tarjetas

Creación de un driver para el estándar VESA

Necesidad de acceder a la BIOS del sistema desde el modo
protegido

Mejora de tiempos de ejecución de la librería

Creación de interfaz para puertos AGP

Adaptación de otros formatos de imagen
(BitMaP, JPG)

Visor de imagen de vídeo

Entorno de ventanas y driver para ratón