Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen - Se presenta una aplicación que combina la facilidad de uso y un entorno controlado para el
utilización de un sistema operativo de tiempo real duro desarrollo de aplicaciones de tiempo real multihiladas,
(MaRTE OS) y un lenguaje de tiempo real (Ada) en el proveyendo también soporte para lenguajes como C y
control de posicionamiento de una antena de Ada.
comunicaciones a fin de captar la máxima intensidad de
señal. Para la simulación funcional del sistema se construyó
un prototipo con motores paso a paso controlados a través
del puerto paralelo de una PC. Como drivers para los II. MaRTE OS Y EL ESTÁNDAR POSIX
actuadores se utilizaron las señales generadas por una
placa de entrada/salida usada normalmente con fines El sistema operativo MaRTE fue desarrollado
didácticos en la materia de grado.
para una tesis doctoral en el Departamento de
Palabras clave: MaRTE OS, POSIX, Ada, steppers, puerto
Electrónica y Computadores de la Universidad de
paralelo. Cantabria.
-1-
VII JAR 2012 - UNICEN, Olavarría
sea demasiado grande para su uso en pequeños sistemas ambas se tiene la diferencia de la capa intermedia que
empotrados y por ello MaRTE OS [2] (“Minimal Real- hace de interfaz entre la aplicación y la parte más interna
Time Operating System for Embedded Applications”), del núcleo del sistema operativo.
usado en aplicaciones empotradas pequeñas, soporta
unos servicios POSIX mínimos para reducir el tamaño
de las aplicaciones desarrolladas ya que no requiere el
soporte para múltiples procesos ni tampoco un complejo
sistema de ficheros jerárquico, eliminándose así la mayor
parte del tamaño y la complejidad del POSIX completo.
Está desarrollado bajo el perfil “Sistemas de Fig. 1. Arquitectura de las aplicaciones ejecutándose sobre MaRTE OS
Tiempo Real Mínimo” del POSIX.13 [4] y se ha
implementado utilizando el lenguaje Ada95 que se Para realizar el entorno de creación, carga y
caracteriza por proporcionar una gran fiabilidad y desarrollo de las aplicaciones del sistema MaRTE OS se
además, sencilla legibilidad y capacidad de generar utiliza un equipo con Linux bajo un entorno cruzado
código reutilizable. específico, con los compiladores GNAT y GCC y una
serie de archivos de órdenes (scripts) desarrollados en
La fiabilidad que aporta Ada viene dada por la lenguaje Perl que facilitan la generación y ejecución de
posibilidad de corregir numerosos errores en tiempo de dichas aplicaciones [5].
compilación, debido al estricto uso de los tipos de datos
que se debe hacer, e incluso en tiempo de ejecución, con En este equipo con Linux se encuentra el núcleo
el uso de excepciones, que tienen la capacidad de del sistema MaRTE además de una serie de librerías que
ejecutar acciones correctoras para subsanar el error son enlazadas de manera conjunta con el código de la
cometido. La sencilla legibilidad y la posibilidad de aplicación que pretende crearse, tras haberse hecho la
generar código reutilizable de manera cómoda vienen compilación correcta del código.
dadas por el uso de los paquetes, módulos compactos de
código que permiten un alto nivel de abstracción y el Las aplicaciones se generan en el equipo Linux,
ocultamiento de la información a usuarios que no pero han de ser cargadas de modo remoto desde el
necesiten saber del contenido del código. sistema empotrado, y para ello se usa una utilidad
especial que carga la aplicación a través de la red de
comunicaciones. Esta utilidad se conoce como ‘NetBoot’
III. CARACTERÍSTICAS DE MARTE OS y se caracteriza por realizar un arranque remoto de una
aplicación dentro de una red Ethernet, configurándose
Los sistemas operativos tradicionales no son para ello diferentes parámetros de manera inicial.
apropiados para tiempo real ya que su comportamiento
no es determinista y tampoco permiten garantizar los
tiempos de respuesta.
-2-
VII JAR 2012 - UNICEN, Olavarría
Es posible encontrar sistemas empotrados que Fig. 3. Vista del motor p.a p. de control de inclinación de la antena.
basan su funcionamiento en algún tipo de SO de tiempo
real realizando multitud de aplicaciones en aviones,
trenes, coches, teléfonos móviles, etc. Pueden
encontrarse varios proyectos realizados con este sistema
operativo en [6].
-3-
VII JAR 2012 - UNICEN, Olavarría
gradosMotorBase:=pasostogrados(motorHorizontal.pospaso,motorHori
zontal); Fig. 8: procedimiento que permite posicionar un motor de pasos
gradosMotorVertical:=pasostogrados(motorVertical.pospaso,motorVer
tical); Como se dijo anteriormente, para simular la
put("----------------------------------------------------------------------- aplicación se utilizó una placa de entrada/salida para la
");new_line;
put(" Estado de los motores");new_line;
transferencia de señales hacia los motores. Esta placa
put(" Base: ");put(integer(gradosMotorBase));put(" utiliza el puerto paralelo standard de una PC, por lo cual
-4-
VII JAR 2012 - UNICEN, Olavarría
hay que direccionar los tres registros del mismo (datos, forma la detección de la máxima intensidad de señal en
estado y control) generalmente establecidos a partir de la el menor tiempo posible.
dirección base 378 (hexadecimal).
Si bien este sistema de tiempo real es de los
El siguiente procedimiento (fig. 9) carga los considerados blandos, ya que una demora en la búsqueda
registros del puerto paralelo con las direcciones de la mayor intensidad de señal no genera un daño o
correspondientes e inicializa las variables y arreglos de degradación del sistema, sirve como ejemplo de
datos que se utilizan para el manejo de los motores: utilización de este sistema operativo y su validez para el
caso de sistemas de tiempo real estrictos.
b.escribir:=PP_BASE_REG+PP_CONTROL_REG; [2] “MaRTE OS home page, (Minimal Real-Time Operating System for
Embedded Applications)”, Mario Aldea y Michael González,
end if; Dic.2001 http://marte.unican.es/
end if;
end InicializaMotor; [3] “GNU General Public License - GNU Project - Free Software
Foundation (FSF)” http://www.gnu.org/copyleft/gpl.html
-5-