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

17
Migración de Migración de un sistema sistema operativo de tiempo operativo de tiempo real, MaRTE OS, a un real, MaRTE OS, a un microcontrolador microcontrolador Proyecto fin de carrera Proyecto fin de carrera Alberto Alberto Gutiérrez Castro Castro Santander, octubre de 2003 Santander, octubre de 2003 Universidad de Cantabria Escuela Técnica Superior de Ingenieros Industriales y de Telecomunicación

Transcript of Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un...

Page 1: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Migración de Migración de un sistema sistema operativo de tiempo real, operativo de tiempo real,

MaRTE OS, a un MaRTE OS, a un microcontroladormicrocontrolador

Proyecto fin de carreraProyecto fin de carrera

Alberto Alberto Gutiérrez Castro CastroSantander, octubre de 2003Santander, octubre de 2003

Universidad de CantabriaEscuela Técnica Superior de Ingenieros

Industriales y de Telecomunicación

Page 2: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

0. Objetivos0. Objetivos 1. Introducción1. Introducción 2. Sistema operativo MaRTE OS2. Sistema operativo MaRTE OS 3. Controlador EyeBot3. Controlador EyeBot 4. Portado de MaRTE OS al microcontrolador 4. Portado de MaRTE OS al microcontrolador

MC68332MC68332 5. Entorno de desarrollo cruzado5. Entorno de desarrollo cruzado 6. Aplicación de demostración6. Aplicación de demostración 7. Conclusiones7. Conclusiones 8. Trabajo futuro8. Trabajo futuro

Page 3: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

0. 0. Objetivos Elaboración de un entorno de desarrollo cruzado Elaboración de un entorno de desarrollo cruzado

para el MC68332.para el MC68332. Adaptación de un compilador cruzado para que soporte Adaptación de un compilador cruzado para que soporte

aplicaciones escritas en Ada y C.aplicaciones escritas en Ada y C. Adaptación de un depurador cruzado.Adaptación de un depurador cruzado.

Migración de MaRTE OS al MC68332.Migración de MaRTE OS al MC68332. Implementación de la “Interfaz Abstracta con el Implementación de la “Interfaz Abstracta con el

Hardware”.Hardware”. Generación de utilidades que automaticen la Generación de utilidades que automaticen la

compilación, enlazado, carga y depuración de compilación, enlazado, carga y depuración de aplicaciones.aplicaciones.

Desarrollo de una aplicación que haga uso de la Desarrollo de una aplicación que haga uso de la funcionalidad POSIX proporcionada por MaRTE funcionalidad POSIX proporcionada por MaRTE OS.OS.

Page 4: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

1. 1. Introducción

Sistemas empotrados de tiempo realSistemas empotrados de tiempo realSistemas de tiempo real Sistemas de tiempo real en los que el computador constituye una parte los que el computador constituye una parte más de un sistema mayor en el que se encuentra altamente integrado y en 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.el que se dedica a realizar una función o conjunto de funciones.

Utilización de los sistemas empotradosUtilización de los sistemas empotrados Procesadores baratos, memorias menor coste y mayor escala de integraciónProcesadores baratos, memorias menor coste y mayor escala de integración Equipos Hi-Fi, reproductores DVD, juguetes, pequeños electrodomésticos...Equipos Hi-Fi, reproductores DVD, juguetes, pequeños electrodomésticos...

Sistemas de tiempo realSistemas de tiempo realSon sistemas computacionales fuertemente relacionados Son sistemas computacionales fuertemente relacionados con el entorno, los resultados obtenidos sólo se podrán con el entorno, los resultados obtenidos sólo se podrán considerar válidos cuando, sean correctos, desde el punto considerar válidos cuando, sean correctos, desde el punto de vista lógico, y hayan sido generados a tiempo.de vista lógico, y hayan sido generados a tiempo.

Page 5: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

… … 1. 1. Introducción

POSIX (Portable Operating System Interface)POSIX (Portable Operating System Interface) Define la interfaz que los sistemas operativos deben ofrecer a las aplicaciones, Define la interfaz que los sistemas operativos deben ofrecer a las aplicaciones,

así como la semántica de los servicios así como la semántica de los servicios ofrecidos por esta interfaz. por esta interfaz. En estándar POSIX.13 se han definido 4 subconjuntos, para distintos tipos de 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 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 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 estándar POSIX, permite su implementación como un núcleo de sistema operativo pequeño y eficiente. Pensado para pequeños sistemas empotrados.operativo pequeño y eficiente. Pensado para pequeños sistemas empotrados.

Evolución de los sistemas informáticosEvolución de los sistemas informáticos De pequeños microcontroladores de 4 bits a procesadores de 64 bitsDe pequeños microcontroladores de 4 bits a procesadores de 64 bits Limitaciones: tamaño, peso, consumo, procesador reducido y memoria Limitaciones: tamaño, peso, consumo, procesador reducido y memoria reducida reducida Desarrollo tecnológico: mejora de tiempos de desarrollo y fiabilidad de Desarrollo tecnológico: mejora de tiempos de desarrollo y fiabilidad de aplicaciones.aplicaciones. Inclusión de sistemas operativos y estrategias de diseño software para Inclusión de sistemas operativos y estrategias de diseño software para sistemas de tiempo real: programación concurrente, estrategias de sistemas de tiempo real: programación concurrente, estrategias de planificación de tareas, programación orientada a objetos..planificación de tareas, programación orientada a objetos.. Normas de estandarización, permitirán independizar: arquitectura Normas de estandarización, permitirán independizar: arquitectura hardware, software de base, sistema operativo, y aplicación. hardware, software de base, sistema operativo, y aplicación.

Page 6: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

2. MaRTE 2. MaRTE OS MaRTE OS (Minimal Real-Time Operating System MaRTE OS (Minimal Real-Time Operating System

for Embedded Applications)for Embedded Applications) Pionero, S.O. escrito en Ada que Pionero, S.O. escrito en Ada que permite la ejecución de la ejecución de

aplicaciones concurrentes escritas en C, Ada o ambos.aplicaciones concurrentes escritas en C, Ada o ambos. El núcleo implementa la funcionalidad incluida en El núcleo implementa la funcionalidad incluida en

subconjunto mínimo del POSIX.subconjunto mínimo del POSIX. Entorno de desarrollo cruzado basado en los Entorno de desarrollo cruzado basado en los

compiladores GNU GCC y GNAT, y el depurador GDB compiladores GNU GCC y GNAT, y el depurador GDB (posibilitan la creación, carga y depuración de las (posibilitan la creación, carga y depuración de las aplicaciones).aplicaciones).

Principales característicasPrincipales características Pensado para aplicaciones principalmente estáticasPensado para aplicaciones principalmente estáticas Permite ejecutar aplicaciones Ada y CPermite ejecutar aplicaciones Ada y C Portable a distintas arquitecturasPortable a distintas arquitecturas Toma forma de librería para ser enlazada con la aplicación Toma forma de librería para ser enlazada con la aplicación

Page 7: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

… … 2. 2. MaRTE OS OS

Requisitos (Interfaz Abstracta con Requisitos (Interfaz Abstracta con el Hardware)el Hardware) TemporizadorTemporizador Reloj monótono Reloj monótono Operaciones de Operaciones de conversión de de

tiempostiempos Dispositivo controlador de las Dispositivo controlador de las

interrupcionesinterrupciones Interrupciones hardwareInterrupciones hardware Operaciones de gestión de los Operaciones de gestión de los

manejadores de interrupciónmanejadores de interrupción Operación de cambio de contexto Operación de cambio de contexto

entre tareasentre tareas Operaciones sobre registros del Operaciones sobre registros del

procesadorprocesador

ArquitecturaArquitectura

Page 8: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

3. Controlador EyeBot3. Controlador EyeBot

El MC68332 el El MC68332 el microcontroladormicrocontrolador

El EyeBot la tarjeta El EyeBot la tarjeta controladoracontroladora CaracterístiCaracterísticasas

2 MB de RAM, 512 KB 2 MB de RAM, 512 KB de flash-ROM, LCD de flash-ROM, LCD gráfico, puerto IrDA, gráfico, puerto IrDA, puertos paralelo y puertos paralelo y serie, BDMserie, BDM

Page 9: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

...3. ...3. Controlador Eyebot Eyebot CPU32

Arquitectura 32 bits Familia 68020 Manejador de excepciones Modo de depuración en segundo plano (BDM)

SIM (Módulo de integración de sistema)SIM (Módulo de integración de sistema) Soporte para bus externoSoporte para bus externo Lógica de protección del sistemaLógica de protección del sistema 2 puertos de 8 bits de E/S de función dual2 puertos de 8 bits de E/S de función dual 1 puerto de 7 bits de salida con función dual1 puerto de 7 bits de salida con función dual

TPU (Unidad de Procesado de Tiempo)TPU (Unidad de Procesado de Tiempo) Capacidad de operación independiente de la CPU32Capacidad de operación independiente de la CPU32 16 canales independientes y programables, que pueden 16 canales independientes y programables, que pueden desempeñar funciones de tiempodesempeñar funciones de tiempo 2 registros de cuenta de temporizador con niveles de 2 registros de cuenta de temporizador con niveles de escala programables.escala programables. Nivel de prioridad de los canales seleccionablesNivel de prioridad de los canales seleccionables

QSM (Módulo de Cola de Periféricos QSM (Módulo de Cola de Periféricos Serie)Serie)

interfaz de comunicación serieinterfaz de comunicación serie interfaz para la cola de periféricos serie para la cola de periféricos serie 11 puerto d 8 bit de función dualpuerto d 8 bit de función dual

Page 10: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

4. Migración de MaRTE OS a 4. Migración de MaRTE OS a MC68332

Interfaz Abstracta Interfaz Abstracta con el Hardware el HardwareConjunto de operaciones requeridas por MaRTE OS para funcionar Conjunto de operaciones requeridas por MaRTE OS para funcionar

sobre la plataforma elegida. Proporciona al resto del núcleo de sobre la plataforma elegida. Proporciona al resto del núcleo de MaRTE OS una visión abstracta de la plataforma. Toma la forma MaRTE OS una visión abstracta de la plataforma. Toma la forma de un paquete Ada.de un paquete Ada. Características Características Interfaz está formada por funciones y procedimientos Ada.Interfaz está formada por funciones y procedimientos Ada. Tipos, Tipos, constantes, variables nombres de procedimientos y , variables nombres de procedimientos y

funciones independientes de la plataforma en la que se funciones independientes de la plataforma en la que se implemente.implemente.

Page 11: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

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

tpu.ads & tpu.adbGeneración del reloj del sistema y programación del temporizador

interrupt_tables.ads & interrupt_tables.adbInterrupciones, fuentes de interrupción, instalación de

manejadores de interrupción, tratamiento de interrupciones y habilitación y deshabilitación de interrupciones hardware

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.

...4. Migración de MaRTE OS a ...4. Migración de MaRTE OS a MC68332MC68332

Arquitectura

Page 12: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

5. Entorno de desarrollo Creación del entorno Creación del entorno

de desarrollo cruzadode desarrollo cruzado Compilador y Compilador y depurador

cruzadoscruzados Entorno de desarrolloEntorno de desarrollo

PC de desarrollo (Host) PC de desarrollo (Host) AMD K6 a 450 Mhz, AMD K6 a 450 Mhz, Linux, GNAT 3.12, GCC Linux, GNAT 3.12, GCC 2.8.1 y GDB 2.8.1 y GDB

Plataforma (Target) Plataforma (Target) SoccerBot a 33 Mhz, SoccerBot a 33 Mhz, RoBiosRoBios

Carga de la aplicación: Carga de la aplicación: cable serie o BDMcable serie o BDM

Page 13: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

6. Aplicación 6. Aplicación de demostracióndemostración

El SoccerBot El SoccerBot plataforma de de desarrollodesarrollo

Page 14: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

6. Aplicación de 6. Aplicación de demostracióndemostración

Descripción de la aplicación, escrita en C.Descripción de la aplicación, escrita en C. La aplicación hará que el robot utilice sus sensores de La aplicación hará que el robot utilice sus sensores de

posición para evitar que colisione con los obstáculos que posición para evitar que colisione con los obstáculos que salgan a su paso, utilizaremos 3 threads y 1 mútex, de tal salgan a su paso, utilizaremos 3 threads y 1 mútex, de tal manera que cada threads corresponda a una manera que cada threads corresponda a una tarea con con prioridad, el mútex va a permitir asegurar la correcta prioridad, el mútex va a permitir asegurar la correcta ejecución de tareas. La tarea de mayor prioridad ejecución de tareas. La tarea de mayor prioridad corresponderá a la que hace continuas lecturas de corresponderá a la que hace continuas lecturas de posición, la tarea de prioridad media, moverá los motores posición, la tarea de prioridad media, moverá los motores según corresponda, la tarea de prioridad baja, mostrará según corresponda, la tarea de prioridad baja, mostrará datos en LCD.datos en LCD.

Page 15: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

...6. Aplicación de ...6. Aplicación de demostración

Diagrama de Diagrama de funcionalidad de la de la aplicaciónaplicación

Pthread INICIAPrioridad :

altaT1 Pthread

MUEVEPrioridad: media

T2

Pthread PONprioridad: baja

T3

mutex

t1<t2<t3

video

Page 16: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

7. 7. Conclusiones Se ha elaborado un entorno de desarrollo Se ha elaborado un entorno de desarrollo

cruzado para el MC68332cruzado para el MC68332 Compilador y depurador cruzadosCompilador y depurador cruzados

Se ha portado MaRTE OS al MC68332Se ha portado MaRTE OS al MC68332 Implementando la interfaz abstracta con el Hardware Implementando la interfaz abstracta con el Hardware

en el MC68332en el MC68332 Se ha generado un conjunto de utilidades que Se ha generado un conjunto de utilidades que

automatizan la compilación, enlazado y carga de automatizan la compilación, enlazado y carga de aplicaciones.aplicaciones.

Se ha desarrollado una aplicación que Se ha desarrollado una aplicación que implementa características de POSIX en MaRTE implementa características de POSIX en MaRTE OS, como son los OS, como son los pthreadspthreads y y mutexesmutexes

Page 17: Migración de sistema operativo de tiempo real, MaRTE OS, a un microcontrolador Migración de un sistema operativo de tiempo real, MaRTE OS, a un microcontrolador.

Octubre 2003 AGCOctubre 2003 AGC

8. 8. Trabajo futuro futuro

Adaptación de la librería Adaptación de la librería runtimeruntime de de GNATGNAT

Generar Generar controladores para los para los periféricos del SoccerBotperiféricos del SoccerBot

Integración en la distribución pública Integración en la distribución pública de MaRTE OSde MaRTE OS

Portado a otros microcontroladores Portado a otros microcontroladores