Linux embebido en un soft-processor Microblaze



Documentos relacionados
Tipos de Dispositivos Controladores

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

Introducción a las redes de computadores

Gestión Dispositivos Móviles Dexon Software

CAPÍTULO 1 Instrumentación Virtual


COLEGIO COMPUESTUDIO

En este capítulo se describe la forma de cómo se implementó el sistema de video

Electrónica Digital II

Encuesta sobre utilización de la microelectrónica en la Argentina

Guía de uso del Cloud Datacenter de acens

Windows Server 2012: Infraestructura de Escritorio Virtual

E-learning: E-learning:

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

Descripción. Este Software cumple los siguientes hitos:

En los últimos años, se ha presentado una enorme demanda por servicios portátiles,

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

GUÍA DOCENTE. Sistemas Integrados

PROVIAS NACIONAL INFORME TÉCNICO DE EVALUACIÓN DE SOFTWARE Nº MTC/ NOMBRE DEL ÁREA: Unidad de Informática

GARANTÍA. Garantía. Mantenimiento. Asistencia técnica. Sistemas de identificación. Servicios adicionales

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1

Metodologías de diseño de hardware

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos

Capitulo I. Introducción

Unidad I. Introducción a la programación de Dispositivos Móviles

Soluciones innovadoras para optimizar su infraestructura TI. Virtualización con el sistema operativo i, PowerVM y Power Systems de IBM

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

picojava TM Características

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

CAPITULO I El Problema

Componentes y Ensamble, Componentes Básicos.

Beneficios estratégicos para su organización. Beneficios. Características V

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

Sistema de marketing de proximidad

LIBRO GUIA: Embedded system design, By Peter Marwedel, Building embedded Linux systems By Karim Yaghmour

Capítulo 5. Cliente-Servidor.

ing Solution La forma más efectiva de llegar a sus clientes.

INTELIGENTE Y VERSÁTIL

La Pirámide de Solución de TriActive TRICENTER

Clase 20: Arquitectura Von Neuman

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

MANUAL TERMINALES X300 Manual Soporte Técnico.

Movilidad. Pasa demasiado tiempo fuera de la oficina? Solución móvil Dynamics NAV

Vielka Mari Utate Tineo Instituto Tecnológico de las Américas ITLA. Profesor José Doñé PRATICA NO. 24, CLUSTER

Guía de selección de hardware Windows MultiPoint Server 2010

UNIVERSIDAD TECNICA DEL NORTE

Sistemas de Computadoras Índice

Curso S08 para Cavernícolas

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES

Soporte Técnico de Software HP

Tema 2: Introducción a Android

Gestión de la Configuración

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

ESCUELA NORMAL PROFESOR CARLOS A. CARRILLO

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

SOLUCIÓN HOSPEDADA. Introducción a los modelos de asociación de partners de Microsoft Dynamics CRM

Desarrollo de Smarphones sobre plataformas libres para PC y PDA. David Cortés, José Luis González, Servando Saavedra y Juan Ramón Saavedra

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Elementos requeridos para crearlos (ejemplo: el compilador)

Sistema informatizado de Trazabilidad alimentaria

Consola Web. Inicio de sesión consola web Plataforma Kronos. Latinoamérica. Acceso en línea a la información de todos sus sistemas en Kronos.

Lectura 2: El Sistema Operativo y sus Funciones

ÍNDICE SISTEMAS OPERATIVOS... 5

SERVICIOS. Reingeniería. Instalación / Puesta en marcha. Personalización. Cursos de formación. Servicio técnico. Servicio de mantenimiento

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Instalación de Sistemas de Automatización y Datos

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

SOFTWARE DE RECUENTO DE DINERO

Producto. Información técnica y funcional. Versión 2.8

Tabla de contenido. 1. Objetivo Asignación de responsabilidades Alcance Procedimientos relacionados...4

Características y ventajas de WinZip

Manual de Instalación de la Licencia AdRem NetCrunch 6

Capitulo III. Diseño del Sistema.

Introducción. Objetivo. Implementar un detector de malware con software libre empleando el protocolo Netflow.

LiLa Portal Guía para profesores

Configuración de la red

Guía Rápida de Inicio

Estudio de Fabricantes y Familias de Microcontroladores y Microprocesadores Aplicados a Sistemas de Control e Instrumentación

HOT POTATOES: UNA NUEVA HERRAMIENTA EDUCATIVA

Intérprete entre el Operador y el Ordenador.

Capítulo 1. Introducción

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Informe final Proyecto de Innovación Docente ID11/129. Uso de FPGAs y medios audiovisuales en la docencia de la Electrónica Digital

Sistema Operativo Linux

Acronis Universal Restore

El Modelo de Referencia OSI

Capacitación del Sistema de seguimiento de PAIMEF. Módulo I.F.I

Nombre del Trabajo: Control ActiveX que garantiza la seguridad de las aplicaciones desarrolladas para windows.

Instalación de XEN Información de XEN Qué es XEN? Componentes de XEN:... 2

PRACTICA NO.24: CLUSTER

Bechtle Solutions Servicios Profesionales

Transcripción:

Linux embebido en un soft-processor Microblaze Claudio Aciti y Nelson Acosta INTIA/INCA - Fac. de Ciencias Exactas - Universidad Nacional del Centro de la Prov. de Bs As Pinto 399 - Tel/Fax : (02293) 43-9680 - Tandil(7000) - Buenos Aires - Argentina {caciti, nacosta}@exa.unicen.edu.ar 1. Introducción Los sistemas embebidos son sistemas dedicados a una única tarea, es por ello que se los llama "sistemas de propósitos específicos". En la actualidad, los sistemas embebidos han logrado un gran auge gracias a sus diferentes campos de aplicaciones y sus bajos costos comparados con sistemas tradicionales [4, 12]. Es muy común el uso cotidiano de sistemas embebidos, ya sea en electrónica de consumo (lavarropas, heladeras, microondas, relojes, consolas de juegos, control remoto, cámaras de video, fax, CD, DVD, GPS, televisión digital), en sistemas de comunicación (sistemas de telefonía, contestadores, celulares, beepers, PDAs, routers), en automóviles (inyección electrónica, frenos, elevadores de vidrios, control de asientos, instrumentación, seguridad), en la industria (instrumentación, monitoreo, control, robótica, control de tráfico, manejo de códigos de barras, ascensores), en medicina (monitores cardíacos, renales y de apnea, marcapasos, máquina de diálisis), entre otros [7]. Por esto, hoy en día, se ha adoptado un nuevo paradigma de diseño de bajo costo el cual ha mostrado gran eficiencia al ser dedicado a una tarea específica, dado que solo se diseñan e implementan los módulos que se van a utilizar y por tanto se usa el hardware estrictamente necesario. Además puede ser optimizado en cualquier momento ya que en la mayoría de las ocasiones, es implementado sobre dispositivos que pueden ser reprogramados. Es así como los sistemas embebidos son la primera opción en el campo de la ingeniería para la solución de problemas específicos. Si un sistema embebido ofrece grandes ventajas, estas serán mayores si se cuenta con un sistema operativo que le brinde al usuario una mayor facilidad a la hora de trabajar y crear un sistema especializado mucho más robusto. Esto se ha logrado gracias a que se cuenta con el sistema operativo Linux, uno de los más estables y difundidos, que puede ser portado a este tipo de hardware a través de diferentes distribuciones (VxWorks, BlueCat, MontaVista linux, ThreadX, uc/os-ii o uclinux, entre otros) a una arquitectura Microblaze de Xilinx en FPGA [1,3,4]. 2. Arquitectura Microblaze Microblaze es un procesador de 32 bits (Figura 1) que ha sido desarrollado con unos requisitos muy rígidos de ocupación y prestaciones, debido a la limitación impuesta por los recursos disponibles en una FPGA, sin embargo está catalogado como uno de los soft-core más rápidos del mundo. Microblaze cuenta con un set de instrucciones reducido (RISC) optimizado para la implementación en una FPGA [6, 11, 13]. Este microprocesador es un IP core que debe instanciarse en el proyecto de hardware, sólo puede estudiarse a partir de la documentación del fabricante, de los documentos de resultados experimentales publicados en la red o de la experiencia propia del usuario. Aún así, es una herramienta muy potente para desarrollar proyectos relacionados con arquitecturas en paralelo, diseño, control y en general, cualquier investigación sobre software, ya que permite una comparación inmediata con otras arquitecturas y metodologías de desarrollo. MicroBlaze puede ejecutar diferentes sistemas operativos como [10] Nucleus, ThreadX, uc/os-ii y uclinux.

Figura 1. Esquema de bloques de Microblaze 3. Linux embebido En el área de los sistemas embebidos, Linux es ampliamente usado. Su fiabilidad es consecuencia directa de la filosofía que lleva implícita la aportación altruista de miles de programadores de todo el mundo observando el código, mejorándolo, cambiándolo y probándolo en miles de configuraciones posibles del sistema. Linux para los dispositivos embebidos comenzó con el soporte del kernel y el compilador para los microprocesadores más populares de 32 bits: x86, ARM, PowerPC, MIPS y SH. Y luego continuó con la aparición de diferentes distribuciones de Linux con soporte para características específicas de los sistemas embebidos. Sucesivas distribuciones, de licencias propietarias, adaptaron el kernel de Linux para usarlo en diferentes dispositivos. Es así que Montavista Linux es usado en arquitecturas PowerPC y actualmente fue portado a teléfonos móviles. BlueCat Linux fue portado a PowerPC y Microblaze. ThreadX, VxWorks y uc/osii tambien han sido instalados en dispositivos como PALM o routers. La distribución uclinux, de licencia libre, está basada en el kernel de Linux, del cual mantiene sus principales ventajas: estabilidad, capacidad superior de red y excelente soporte del sistema de archivos. El kernel de uclinux ha sido reescrito para reducirlo y para que sea más eficiente y, la principal ventaja es que ha sido desarrollado especialmente para microprocesadores que carecen de Unidad de Manejo de Memoria. uclinux además, incluye un conjunto amplio de aplicaciones típicas

de Linux, en las que se destacan: servidores web, clientes de red y versiones reducidas de interpretes de perl y phyton. El proyecto para portar uclinux a MicroBlaze comenzó en Enero de 2003 en la Universidad de Queensland (Australia), de la mano de John Williams como parte de su trabajo de investigación. Este proyecto, denominado Petalinux, es "open source" y por lo tanto abierto a la colaboración. A la fecha, fue actualizado al kernel 2.6.20 estable. 4. Portando Linux a una FPGA El proyecto se divide en tres partes: la descripción en Hardware del Microblaze; instalar un sistema operativo Linux con control de tiempo real en el procesador soft-core Microblaze; Y descargar la imagen creada en una FPGA. 4.1 Creación del Proyecto de Hardware El diseño de la descripción en hardware del Microblaze en VHDL o Verilog se hace a través de una herramienta específica que proporciona el fabricante: EDK (Embedded Development Kit), que permite la configuración del hardware y el desarrollo de los periféricos, y el ISE (Integrated Software Environment) Foundation que proporciona las herramientas necesarias para llevar a cabo las tareas de síntesis, implementación y programación de la FPGA. Ambas distribuciones son propias de Xilinx, y tienen licencia propietaria. Al hacer una configuración de hardware, se crea un archivo.mhs (microprocessor hardware specification), en el que se encuentran las especificaciones de los puertos del sistema, la memoria o memorias externas a la FPGA, los buses, los recursos del hardware, las instancias y configuraciones de los periféricos del sistema, tamaños de caché y habilitación de las mismas, así como el rango de memoria en el cual está el mapeado de los periféricos. En este archivo, está la especificación del software necesario para que el hardware funcione correctamente. Aquí se instancian los drivers necesarios para cada uno de los periféricos que se determinaron en el archivo de descripción del hardware, así como las opciones de compilación. Después de generar el proyecto de hardware. Es necesario cambiar el sistema operativo por el de Petalinux [8], y se debe adicionar un proyecto de software nuevo, el cual viene en la distribución y es llamado FS-Boot (First Stage Bootloader) [2]. Este permite cargar un sistema más grande llamado U- Boot, que en principio no cabe en la caché del microprocesador, por lo tanto, debe existir una manera de cargarlo a una memoria más grande de la tarjeta de desarrollo. De esto y otros cambios se encarga el FS-Boot. 4.2 Preparación del Kernel Ya configurado el Microblaze, se continúa con la compilación del kernel. Antes hay que tener en cuenta las siguientes consideraciones: 1. Tener las fuentes del kernel 2. Conocer cuales dispositivos de hardware se han creado sobre la tarjeta de desarrollo. Esto con el fin de compilar un kernel que se adecue perfectamente a las necesidades que se tengan. El Sistema Operativo que se compilará tendrá la ventaja de utilizar un archivo de texto plano que contiene todas las definiciones de hardware que se hicieron sobre el microprocesador. Este archivo permite disminuir los errores de compilación. La máquina sobre la que se compila el kernel, deberá

tener SO basado en Linux, aunque es posible compilar el kernel desde windows utilizando las herramientas adecuadas [4]. Primero se indican todos los dispositivos que se van a usar, el nombre de la tarjeta para la cual se esta compilando el kernel, la forma en que la tarjeta se va a comunicar con el exterior y en que lugar del sistema se guardarán las imágenes del kernel. Una vez configurado el kernel, se construyen todas las dependencias del proyecto. Si el proceso es exitoso, las imágen del kernel quedará compilada y lista para ser descargada. 4. 3 Descarga de la imagen del kernel. Una vez completados los pasos anteriores, se puede iniciar la descarga de la imagen del kernel. Para lograrlo se debe conectar la tarjeta de desarrollo al puerto serial del computador, y lanzar un programa que permita comunicación por este puerto. El programa se configura de la misma manera que el hardware, bits por segundo, bits de datos, paridad, bit de parada, control de flujo, etc. Cuando la configuración esté completa, se descarga el microblaze desde el EDK. Con lo cual se completa el proceso y se tiene un kernel completamente funcional sobre una FPGA. 5. Estado actual del proyecto Hasta el momento se están estudiando alternativas de sistemas operativos para montar en una fpga. También se está estudiando el manejo de las herramientas EDK y ISE de Xilinx Inc., y las descripciones de Hardware génericas existentes. El equipo de trabajo está compuesto por un Director, un doctorando y un alumno de grado. Para estos últimos, este proyecto forma parte de su tesis de doctorado y de grado, respectivamente. Se cuenta con dos placas de desarrollo, una Virtex II Pro Developer System con una FPGA Virtex II Pro modelo XC2VP30 (Figura 2), y una Spartan 3 Starter Board con una FPGA Spartan 3 XE35200 (Figura 3). Además, de las herramientas del fabricante: EDK (Embedded Development Kit) y el ISE (Integrated Software Environment) Foundation (Figura 3). Una computadora con un sistema operativo GNU/Linux Debian Etch con un kernel 2.6.18-4 estable. Figura 2. Virtex II Pro Developer System con una FPGA Virtex II Pro. Figura 3. Spartan 3 Starter Board con una FPGA Spartan 3.

6. Bibliografía [1] E. Aguayo, I. Gonzáles. "Tutorial Xilinx Microblaze-uClinux". JCRA 2004. Madrid. España. 2004 [2] First Stage Bootloader. http://developer.petalogix.com/wiki/userguide/bootloaders/fsboot [3] I. Gonzalez, E. Aguayo, S. Lopez-Buedo, "Self-Reconfigurable Embedded Systems on Low-Cost FPGAs", IEEE Micro 2007 (Vol. 27, No. 4) pp. 49-57. 2007 [4] J. A. Jaramillo Villegas, L. M. Perez Perez, H. J. Osorio Ríos. "Linux sobre una FPGA". Sciencia et technica. Año XIII. Número 37. ISSN 0122-1701. 2007 [5] R. H. Klenke. "Experiences Using the Xilinx Microblaze Softcore Processor and uclinux in Computer Engineering Capstone Senior Design Projects". IEEE International Conference on Microelectronic Systems Education (MSE'07) pp. 123-124. Virginia Commonwealth University, USA. 2007 [6] J. Lazanyi. "Instruction set extension using Microblaze processor". 15th International Conference on Field Programmable Logic and Applications, IEEE, pp. 729-730, Finlandia. 2005 [7] J. Osio, F. Salguero, J. Rapallini y A. Quijano. " Análisis de Modelos Computacionales para Sistemas Embebidos". XII Iberchip, IWS06. Costa Rica. 2006 [8] Petalinux. http://developer.petalogix.com/ [9] C.C.W. Robson, A. Bousselham, C. Bohm, "An FPGA based general purpose data acquisition controller," 14th IEEE-NPSS Real Time Conference, p. 49. 2005 [10] O. D. Sánchez, C. I. Camargo. "Linux Embebido como Herramienta para Realizar Reconfiguración Parcial". XII Iberchip, IWS06. Costa Rica. 2006 [11] D. Sheldon, R. Kumar, F. Vahid, D. Tullsen and R. Lysecky, "Conjoining Soft-Core FPGA Processors," 2006 IEEE/ACM International Conference on Computer Aided Design, ICCAD, pp. 694-701. 2006 [12] Valvano, J. "Introduccion a los sistemas de microcomputadores". Thomson Learning Ibero. ISBN 9706863168. 2003 [13] Xilinx Inc., "MicroBlaze Processor Reference Guide", UG081 (V 6.3). 2006. www.xilinx.com/ise/embedded/mb_ref_guide.pdf