Condor:Uboot

by by

El arrancador Das U-Boot es un cargador universal de programas distribuido bajo licencia GNU, este cargador permite inicializar hardware de nivel intermedio para el lanzamiento de un sistema operativo con funciones más complejas. De igual manera puede ser configurado para la ejecución de diferentes programas diseñados y compilados para el procesador en particular. Este gestor de arranque fue portado por las los ingenieros de Linux4Sam pagina soportada directamente por ATMEL. Dentro del proyecto CondorBoard se han incluido algunos parches y modificación al código fuente original del cargador Das U-Boot. La docuementación de U-Boot es muy completa y se encuentra disponible en la pagina oficial

U-Boot toma lugar como la segunda instancia del bootloader. Así mismo es responsable de la configuración de las principales interfaces del sistema y de la carga de Linux. = Entorno U-Boot =

El entorno U-Boot es interprete de comandos del tipo Unix, es decir su sintaxis es similar aunque no es siempre exacta. Dentro de este entorno (alojado en un medio de almacenamiento DataFlash, USB, etc) se pueden guardar variables que determinan el comportamiento del arranque de un sistema operativo en particular. A continuación se muestra una imagen del U-Boot funcionando:



= Definición de variables del U-Boot para cargar un programa a la RAM del sistema = Una vez se tenga U-Boot ejecutandose sobre el CondorBoard se puede insertar una memoria USB con formato FAT16 en el puerto USB-Host y descargar un archivo .bin, eso agiliza el desarrollo y depuración de un programa extenso, comparandolo con el método propuesto en la sección Condor:SAM-BA

El primer comando que se debe ejecutar es usb start para la inicialización de los dispositivos conectados por USB. El resultado de este comando puede ser visualizado en la siguiente figura. Para este caso se encuentran 2 dispositivos conectados por USB, el primero asociado a la interfaz SAM-BA y el segundo a 1 dispositivo de almacenamiento



Para listar el árbol de conexiones USB se puede ejecutar el comando usb tree. El resultado de este comando muestra el serial y la ubicación de la memoria USB, así como también su consumo máximo expresado en miliamperios.



Con el fin de listar los archivos contenidos dentro de la memoria USB se debe ejecutar el comando fatls usb 0:1. El usb indica el tipo de dispositivo, el número 0 hace referencia al dispositivo usb 1 y el 1 es la partición 1 de la memoria USB. En la siguiente figura se puede observar los archivos contenidos dentro de la memoria utilizada para esta prueba.



Por último se puede ejecutar el comando fatload usb 0:1 0x20000000 uimage. En este caso usb 0:1 hace referencia a la interfaz del medio de almacenamiento, 0x20000000 la dirección en memoria donde se carga el archivo y uimage el programa a ejecutar. Tome en cuenta que el tamaño de la RAM es limitado y no se puede cargar archivos o programas que tengan una dimensión superior a ella, para este propósito se utiliza un SO que gestione espacios de memoria virtual como GNU/Linux. Otro aspecto a considerar es que el tamaño del archivo mostrado en el comando fatls debe coincidir con la cantidad de datos leidos y cargados en RAM, para este caso 2593152 bytes.



Nota:  El comando go o bootm le pueden ejecutar el programa cargado en RAM, así mismo recuerde ejecutar el comando help para conocer la sintaxis de estos comandos.

= Compilación del U-Boot = El U-Boot se compila mediante un compilador cruzado que se encuentra dentro de las fuentes en la ruta "~/condorboard-code/Uboot/". Los pasos para la compilación del U-Boot es:


 * Ejecutar el script llamado rmakecondor.sh diseñado para configurar el sistema

Esto se debe realizar cada vez que se hacen cambios en el codigo fuente del Uboot, de lo contrario en "~/condorboard-code/Uboot/" ya se encuentra un archivo precompilado.

Volver