Condor:CondorBoard v1.9

by by by

Esta página pretende dar seguimiento y soporte al desarrollo de la version final de la plataforma para co-diseño Hardware-Software: CondorBoard. El proyecto CondorBoard 1.9 hace parte del desarrollo de la investigación de maestría del estudiante Josnelihurt Rodriguez Barajas, bajo la dirección del profesor Fredy E. Segura-Quijano ([mailto:fsegura@uniandes.edu.co fsegura@uniandes.edu.co]) del departamento de Ingeniería Eléctrica y Electrónica de la Universidad de los Andes.



{{CondorInfoBox|

¿Que es CondorBoard 1.9?
CondorBoard 1.9 es un proyecto de diseño y fabricación de una plataforma flexible, sobre la cual se pueden soportar aplicaciones software y/o hardware. La plataforma también permite probar estrategias o metodologías de diseño para el desarrollo de protocolos de comunicaciones entre dispositivos de lógica programable y procesadores de aplicación específica.

El proyecto CondorBoard 1.9 nace a partir de las notas de aplicación para el procesador AT91SAM9xE disponibles aca.

}}

400px|notitle Haga Click sobre los nodos para obtener más información

= Especificaciones Principales =

Puede consultar las especificaciones completas aca.

= Instalacion de Herramientas de Desarrollo =

Para empezar a usar la Condorboard se requiere el siguiente set de herramientas básicas:


 * Crosscompiler crosstool-linux-gcc-4.0.1-glibc-2.3.5
 * SAM-BootAssistant (SAM-BA)
 * arm-angstrom
 * arm gcc toolchain

Para la instalación de las herramientas mencionadas puede seguir el tutorial paso a paso (Tutorial de Instalación de herramientas básicas). Tambien puede instalar estas herramientas ejecutando el siguiente script: ; el cual se encarga de descargar los archivos necesarios, copiarlos a las carpetas adecuadas (/opt, etc), compilar las fuentes, instalar un kit de utilidades y finalmente agregar los compiladores y programas al PATH.

Para ejecutar el script se descarga el mismo en la carpeta "/home/(usuario)", se abre un terminal, luego se ejecuta el siguiente comando:

Después de haber ejecutado el script condor_init.sh se tiene en la ruta "~/condorboard-code/" los códigos fuente, herramientas, etc de la condorboard.

En caso de errores ver: TROUBLESHOOTING

Instalación de herramientas básicas✅

= Proceso de Arranque del la plataforma = El proceso de arranque de la tarjeta CondorBoard se realiza mediante diferentes programas precargados en los medios de almacenamieto masivo dentro del la tarjeta. A continuación se resumen las etapas basicas del proceso de arranque y se muestra un esquema general del proceso.


 * 1) SAM-BA: Inicialmente el SAM-BootAssistant (SAM-BA), verifica los dispositivos de almacenamiento disponibles en busca de una archivo de arrranque valido. En el caso de la CondorBoard el archivo de arranque es el Bootstrap. Una se encuentra este, se carga en RAM y se le pasa control al mismo (inicia su ejecución).
 * 2) BOOTSTRAPING: El bootstrap realiza la inicialización del hardware basico para ejecutar software de alto nivel. Los dispositivos basicos a inicializar en esta etapa son: el Reloj del Sistema, el Manejador de Memoria Externa (MMU), Controlador de Energia y Modulo de Depuración. Despues de inicializar el hardware básico, el bootstrap puede continuar realizando tareas de bajo nivel predefinidas por el usuario y/o puede inicializar un Bootloader, para posteriormente cargar un sistema operativo embebido. El boostrap busca en el medio de almacenamiento predefinido el Bootloader lo carga en RAM y pasa el control al mismo. En el caso de la CondorBoard el Bootloader utilizado es UBOOT.
 * 3) UBOOT BOOTLOADER: La función principal del Bootloader UBOOT es la de buscar, en los medios de almacenamiento disponibles, la imagen del nucleo del sistema operativo (kernel), descargarla en RAM y pasarle control al mismo. Tambien es posible cargar y ejecutar código de bajo nivel(assembler, C) desde UBOOT.

Tomado de |Linux4SAM

SAM-BA In-System_Programming
SAM-Boot Assitant es una tecnologia implementada en algunos microcontroladores ATMEL para la secuencia de arranque del dispositivo. Esta secuencia esta predefinida por defecto y se puede encontrar en la hoja de datos de cada procesador. En General se puden identificar los siguientes pasos:


 * Verificación del estado físico del cristal (Existe o no).
 * Verificación de archivo de arranque en Flash interna.
 * Verificación de archivo de arranque en Flash externa.
 * DataFlash: Se seleccionan uno a uno los CS (Chip-Select)existentes para este tipo de dispositivo en búsqueda del archivo de arranque.
 * NandFlash: Se busca en la primer dirección de la NandFlash el archivo de arranque.

La secuencia mencionada es llevada acabo hasta encontrar un sector de arranque valido. Cuando esto sucede el procesador descarga el segmento de memoria correspondiente en la RAM. Luego se puede empezar a ejecutar el programa.

Puede encontrar informacion sobre como manejar el SAM-BA sobre la CondorBoard aca

Bootstrap
Los sistemas embebidos a diferencia de los computadores no disponen de un set de chips asociados al procesador para la gestión de arranque(BIOS). Por este motivo es necesario implementar rutinas de bajo nivel que le permitan al dispositivo principal (CPU) inicializar elementos de hardware para el arranque del sistema embebido. Dentro de estos elementos se encuentran el modulo de depuración, el manejador de memoria externa (MMU), controladores de energía y señales de reloj.

Existen diferentes métodos para programar el programa principal de esté tipo de procesadores. Comúnmente la programación puede ser realizada a través de las siguientes interfaces:
 * JTAG cumpliendo con las normas del estándar |IEEE 1149.1
 * SPI programación por Serial Peripheral Interface Bus, más información acerca del protocolo SPI
 * RS232 programación por protocolo serial, más información acerca del protocolo RS232
 * USB a través del bootloader incorporado dentro del procesador, este bootloader es llamado SAM-BA Condor:SAM-BA

Puede encontrar las instrucciones para la compilación y programación del Bootstrap (Programa de Arranque inicial) acá

UBOOT
Construcción de gestor de arranque U-Boot✅

Linux Embebido: Distribucion OpenEmbedded Armstrong
Construcción de la imagen del kernel de linux y configuración de variables de entorno del U-Boot✅ Instalación de sistema de archivos para la distribución OpenEmbedded sobre USB✅ Configuracion del adaptador de red

= ¿Cómo Conectar? =

Para comenzar a utilizar la CondorBoard es necesario contar con los siguientes componentes:

CondorBoard Pinout
Puede observar mejor la imagen, haciendo click sobre la misma y descargando el archivo.

=Referencias=

Archivos del Proyecto
Todos los archivos del proyecto pueden encontrarse en el GIT condorboard-code. Para descargar este debe tener instalado el programa para control de versiones GIT. Ejecute los siguientes comandos desde un terminal para la instalación y descarga del repositorio condorboard-code.

Referencias Externas
Este proyecto se encuentra basado en diferentes aportes de plataformas desarrolladas en  Colombia y el mundo. A continuación se listan las paginas principales de los proyectos:


 * wiki.linuxencaja.net/wiki/SIE Proyecto desarrollado por Ingeniero Carlos Iván Camargo Bareño, profesor de la Universidad Nacional de Colombia.


 * Primeras pruebas con procesadores similares: at91sam9260 TARJETAS:SAM9-L9260

=TROUBLESHOOTING=

Instalacion Herramientas de Desarrollo
En caso de encontrar un error el cuan no permite la construccion del toolchain, aca están las versiones con las que se trabajó. "mpfr3.1.0", "gmp5.0.4" y "termcap1.3.1" en cuyo caso se han de instalar individualmente. Se pueden descargar las librerías gmp de [1], mpfr de [2] y la librería termcap. Después se desarrolla el siguiente procedimiento para su instalación: (SOLO EN CASO DE QUE EL ./build_arm_toolchain.sh NO FUNCIONE CORRECTAMENTE)

Para cada librería ejecutar: (SOLO EN CASO DE QUE EL ./condor_init.sh NO FUNCIONE CORRECTAMENTE) Después de haber ejecutado el script condor_init.sh se tiene en la ruta "~/condorboard-code/" los códigos fuente, herramientas, etc de la condorboard.

__