TAZ-PFC-2010-128


Migración del sistema operativo de tiempo real MaRTE OS al microprocesador ARM

Canales Mayo, Luis
Villarroel Salcedo, José Luis (dir.)

Universidad de Zaragoza, CPS, 2010
Departamento de Informática e Ingeniería de Sistemas, Área de Ingeniería de Sistemas y Automática

Ingeniero en Informática

Resumen: MaRTE OS (Minimal Real-Time Operating System for Embedded Applications) es un sistema operativo de tiempo real que implementa los servicios definidos en el estándar POSIX.13. En general, el objetivo del estándar POSIX es proporcionar un API a las aplicaciones para abstraerlas del sistema operativo que hay debajo, con el fin de facilitar la migración entre los diferentes sistemas operativos que se ajusten a dicho estándar. En concreto, POSIX.13 está orientado a perfiles de entornos de aplicación de tiempo real, como es nuestro caso, y constituye una versión reducida de POSIX. Actualmente, MaRTE OS ofrece soporte para aplicaciones escritas en C o Ada. El núcleo puede ser compilado junto con dichas aplicaciones para funcionar como proceso de Linux, o para ser ejecutado directamente sobre algunos procesadores de la familia Intel X86 (486, Pentium I y Pentium II). El objetivo final al que apunta este proyecto es a la migración total de MaRTE OS al microprocesador ARM7tdmi (dispuesto en el microcontrolador S3C44B0X), con el fin de ejecutar en él aplicaciones bajo este sistema operativo. MaRTE OS está hecho para ser compilado desde Linux. Es por ello por lo que se ha elegido este último sistema operativo como base para la generación de todo el entorno de desarrollo. Dado que MaRTE OS está hecho en C y Ada ha sido necesario elaborar herramientas de compilación cruzada (GCC y Gnat), de forma que ha sido posible compilar desde Linux, alojado en un PC con procesador de la familia x86, aplicaciones que posteriormente iban a ser ejecutadas en un procesador distinto (el ARM7tdmi). Una vez obtenido el entorno de desarrollo cruzado, se pudo proceder a la programación de la parte de más bajo nivel de MaRTE OS. Esta parte se denomina "interfaz abstracta con el hardware", y proporciona al resto del sistema operativo una visión abstracta de la plataforma sobre la que se está ejecutando. La tarea principal ha sido, pues, reprogramar las rutinas de esta interfaz (definida en un único fichero) satisfaciendo sus dependencias con el hardware. Usando los periféricos dispuestos en la placa utilizada (S3CEV40) se ha conseguido el comportamiento especificado para cada una de estas rutinas, las cuales tienen que ver con la carga/guardado de algunos registros del procesador, dehabilitación/habilitación de interrupciones, temporizaciones, etc... Adicionalmente se han implementado las rutinas de inicialización de los periféricos asociados a la interfaz abstracta con el hardware de MaRTE OS. Además, se proporcionan algunas rutinas adicionales como el manejo de la interrupción de reseteo. Finalmente, se ha incluido una batería de pruebas consistente sobre la interfaz abstracta con el hardware, así como algunos scripts que permiten compilar todos los tests. Tras compilar en Linux nuestras aplicaciones y generar los ejecutables correspondientes es necesario transferirlos a la placa utilizada. Para ello se proporciona un entorno, llamado Embest, que ofrece facilidades para cargar y depurar nuestras aplicaciones en el microcontrolador que se ha usado. El entorno Embest funciona bajo Windows, por lo que es necesario transferir los ejecutables desde Linux (donde hemos compilado nuestra aplicación) a este otro sistema operativo.


Palabra(s) clave (del autor): MaRTE OS ; sistema operativo de tiempo real ; ARM ; compilación cruzada ; GNAT ; GCC ; ada ; driver ; embest ; periféricos
Tipo de Trabajo Académico: Proyecto Fin de Carrera

Creative Commons License



El registro pertenece a las siguientes colecciones:
Trabajos académicos > Trabajos Académicos por Centro > Centro Politécnico Superior
Trabajos académicos > Proyectos fin de carrera



Volver a la búsqueda

Valore este documento:

Rate this document:
1
2
3
 
(Sin ninguna reseña)