Download Migración de un sistema operativo de tiempo real, MaRTE OS, a un

Document related concepts

RTAI wikipedia , lookup

Sistema operativo wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

Transcript
Universidad de Cantabria
Escuela Técnica Superior de Ingenieros
Industriales y de Telecomunicación
Migración de un sistema
operativo de tiempo real, MaRTE
OS, a un microcontrolador
Proyecto fin de carrera
Alberto Gutiérrez Castro
Santander, octubre de 2003









0. Objetivos
1. Introducción
2. Sistema operativo MaRTE OS
3. Controlador EyeBot
4. Portado de MaRTE OS al microcontrolador MC68332
5. Entorno de desarrollo cruzado
6. Aplicación de demostración
7. Conclusiones
8. Trabajo futuro
Octubre 2003
AGC
0. Objetivos

Elaboración de un entorno de desarrollo cruzado para el
MC68332.



Migración de MaRTE OS al MC68332.



Adaptación de un compilador cruzado para que soporte
aplicaciones escritas en Ada y C.
Adaptación de un depurador cruzado.
Implementación de la “Interfaz Abstracta con el Hardware”.
Generación de utilidades que automaticen la compilación,
enlazado, carga y depuración de aplicaciones.
Desarrollo de una aplicación que haga uso de la
funcionalidad POSIX proporcionada por MaRTE OS.
Octubre 2003
AGC
1. Introducción

Sistemas de tiempo real
Son sistemas computacionales fuertemente relacionados con el
entorno, los resultados obtenidos sólo se podrán considerar válidos
cuando, sean correctos, desde el punto de vista lógico, y hayan sido
generados a tiempo.

Sistemas empotrados de tiempo real
Sistemas de tiempo real en los que el computador constituye una
parte más de un sistema mayor en el que se encuentra altamente
integrado y en el que se dedica a realizar una función o conjunto de
funciones.

Utilización de los sistemas empotrados


Procesadores baratos, memorias menor coste y mayor escala de
integración
Equipos Hi-Fi, reproductores DVD, juguetes, pequeños
electrodomésticos...
Octubre 2003
AGC
… 1. Introducción

Evolución de los sistemas informáticos

De pequeños microcontroladores de 4 bits a procesadores de 64 bits

Limitaciones: tamaño, peso, consumo, procesador reducido y memoria reducida

Desarrollo tecnológico: mejora de tiempos de desarrollo y fiabilidad de aplicaciones.
Inclusión de sistemas operativos y estrategias de diseño software para sistemas de
tiempo real: programación concurrente, estrategias de planificación de tareas,
programación orientada a objetos..

Normas de estandarización, permitirán independizar: arquitectura hardware,
software de base, sistema operativo, y aplicación.


POSIX (Portable Operating System Interface)


Define la interfaz que los sistemas operativos deben ofrecer a las aplicaciones,
así como la semántica de los servicios ofrecidos por esta interfaz.
En estándar POSIX.13 se han definido 4 subconjuntos, para distintos tipos de
aplicaciones de tiempo real. El menor se denomina ”Sistema de Tiempo Real
Mínimo”. Incluye un pequeño subconjunto de toda la funcionalidad definida en el
estándar POSIX, permite su implementación como un núcleo de sistema
operativo pequeño y eficiente. Pensado para pequeños sistemas empotrados.
Octubre 2003
AGC
2. MaRTE OS

MaRTE OS (Minimal Real-Time Operating System for
Embedded Applications)




Pionero, S.O. escrito en Ada que permite la ejecución de
aplicaciones concurrentes escritas en C, Ada o ambos.
El núcleo implementa la funcionalidad incluida en subconjunto
mínimo del POSIX.
Entorno de desarrollo cruzado basado en los compiladores GNU
GCC y GNAT, y el depurador GDB (posibilitan la creación, carga y
depuración de las aplicaciones).
Principales características




Pensado para aplicaciones principalmente estáticas
Permite ejecutar aplicaciones Ada y C
Portable a distintas arquitecturas
Toma forma de librería para ser enlazada con la aplicación
Octubre 2003
AGC
… 2. MaRTE OS

Arquitectura

Requisitos (Interfaz Abstracta con el
Hardware)








Temporizador
Reloj monótono
Operaciones de conversión de tiempos
Dispositivo controlador de las
interrupciones
Interrupciones hardware
Operaciones de gestión de los
manejadores de interrupción
Operación de cambio de contexto entre
tareas
Operaciones sobre registros del
procesador
Octubre 2003
AGC
3. Controlador EyeBot


El MC68332 el
microcontrolador
El EyeBot la tarjeta
controladora

Características

2 MB de RAM, 512 KB de
flash-ROM, LCD gráfico,
puerto IrDA, puertos
paralelo y serie, BDM
Octubre 2003
AGC
...3. Controlador Eyebot




CPU32
SIM
(Módulo de
integración de sistema)
 Arquitectura
32 bits
TPU
(Unidad
 Soporte
parade
busProcesado
externo de Tiempo)
Familia
68020
QSM
(Módulo
Coladel
deindependiente
Periféricos Serie)
 Capacidad
de
operación
de la
Lógica
de protección
sistema
Manejador
dede
excepciones
CPU32
 interfaz
comunicación
serie
2
puertos
de
8 bits deenE/S
de función
Modo
dede
depuración
segundo
planodual
(BDM)

canales
ycon
programables,
 16
interfaz
para
cola
periféricos
serie dualque
1 puerto
deindependientes
7labits
dede
salida
función
pueden
desempeñar
funciones
de
tiempo
 1 puerto d 8 bit de función dual
 2 registros de cuenta de temporizador con niveles
de escala programables.
 Nivel de prioridad de los canales seleccionables
Octubre 2003
AGC
4. Migración de MaRTE OS a
MC68332

Interfaz Abstracta con el Hardware
Conjunto de operaciones requeridas por MaRTE OS para funcionar sobre la
plataforma elegida. Proporciona al resto del núcleo de MaRTE OS una visión
abstracta de la plataforma. Toma la forma de un paquete Ada.

Características


Interfaz está formada por funciones y procedimientos Ada.
Tipos, constantes, variables nombres de procedimientos y funciones
independientes de la plataforma en la que se implemente.
Octubre 2003
AGC
...4. Migración de MaRTE OS a
MC68332

Arquitectura
tpu.ads & tpu.adb
Generación del reloj del sistema y programación del temporizador
interrupt_tables.ads & interrupt_tables.adb
Interrupciones, fuentes de interrupción, instalación de manejadores de
interrupción, tratamiento de interrupciones y habilitación y deshabilitación
de interrupciones hardware
proccessor_registers.ads & proccessor_registers.adb
Habilitación/deshabilitación de todas las interrupciones, comprobación
de interrupciones, operaciones de tamaño bit y operaciones de cambio
de contexto
hardware_interface.ads & hardware_interface.adb
Comunicación entre la interfaz del hardware y el resto del sistema
operativo, sólo desde aquí se llamará al resto de los paquetes.
Octubre 2003
AGC
5. Entorno de desarrollo

Creación del entorno de
desarrollo cruzado


Compilador y depurador
cruzados
Entorno de desarrollo



PC de desarrollo (Host)
AMD K6 a 450 Mhz, Linux,
GNAT 3.12, GCC 2.8.1 y
GDB
Plataforma (Target)
SoccerBot a 33 Mhz,
RoBios
Carga de la aplicación:
cable serie o BDM
Octubre 2003
AGC
6. Aplicación de demostración

El SoccerBot
plataforma de
desarrollo
Octubre 2003
AGC
6. Aplicación de demostración

Descripción de la aplicación, escrita en C.

La aplicación hará que el robot utilice sus sensores de posición
para evitar que colisione con los obstáculos que salgan a su
paso, utilizaremos 3 threads y 1 mútex, de tal manera que cada
threads corresponda a una tarea con prioridad, el mútex va a
permitir asegurar la correcta ejecución de tareas. La tarea de
mayor prioridad corresponderá a la que hace continuas lecturas
de posición, la tarea de prioridad media, moverá los motores
según corresponda, la tarea de prioridad baja, mostrará datos
en LCD.
Octubre 2003
AGC
...6. Aplicación de demostración

Diagrama de funcionalidad de la aplicación
Pthread INICIA
Prioridad : alta
T1
mute
x
Pthread MUEVE
Prioridad: media
T2
t1<t2<t3
Pthread PON
prioridad: baja
T3
Octubre 2003
video
AGC
7. Conclusiones

Se ha elaborado un entorno de desarrollo
cruzado para el MC68332


Se ha portado MaRTE OS al MC68332



Compilador y depurador cruzados
Implementando la interfaz abstracta con el Hardware
en el MC68332
Se ha generado un conjunto de utilidades que
automatizan la compilación, enlazado y carga de
aplicaciones.
Se ha desarrollado una aplicación que
implementa características de POSIX en MaRTE
OS, como son los pthreads y mutexes
Octubre 2003
AGC
8. Trabajo futuro




Adaptación de la librería runtime de GNAT
Generar controladores para los periféricos
del SoccerBot
Integración en la distribución pública de
MaRTE OS
Portado a otros microcontroladores
Octubre 2003
AGC