- Para este desarrollo implementaremos una secuencia de LEDS basándonos en la práctica # 1 http://microcarsil.blogspot.mx/2014/11/practica-1-leds-secuenciales-utilizando.html
La
siguiente figura muestra el flujo de proceso de carga en 2 estados.
- Un BootRom interna almacena el código de arranque Stage 0, la cual configura el procesador ARM y los periféricos necesarios e iniciar la búsqueda del FSBL (First Stage BootLoader). La lógica programable (PL) no se configura con el BootRom ya que no puede escribir a PL.
- El código de arranque FSBL normalmente se almacena en una de las memorias flash o se puede descargar a través del JTAG. EL BootRomm copia el código de arranque del FSBL que está en la memoria flash y la memoria OCM (On-Chip Memory). El tamaño del FSBL cargado en la OCM está limitado a 192 Kilobyte. Los completos 256 Kilobyte están disponibles después de que el FSBL se empezó a ejecutar.
- El código FSBL está completamente bajo el control del usuario y se le conoce como código arrancador de inicio de usuario. Este nos proporciona la flexibilidad necesaria para arrancar el sistema completo.
- El FSBL es responsable de:
1)
Inicializar
los datos de configuración en hardware del sistema PS
2)
Programar
la parte PL usando el bitstream asignado
3)
Cargar
la segunda etapa del gestor de arranque o código de aplicación bare – metal en
la memoria DDR
- Para ampliar más sobre este tema favor de consultar la siguiente documentación:
"Zynq-7000 All Programmable Software Developers Guide (ug821)"
and the "Technical Reference Manual (ug585)".
- El proceso de creacion del bootloader se ve en la siguiente figura:
INICIAMOS ABRIENDO VIVADO
- En el diagrama de bloques del proyecto LEDs en vivado debes habilitar SD0 y QUAD SPI en el Zynq, despues volver a generar el bitstream, exportar el hardware y por ultimo lanzar el SDK.
- El entorno de eclipse se muestra a continuación:
- Crearemos una nueva aplicación para FSBL:
- Escogemos como plataforma de hardware a zed_hw_platform:
- Establecemos la construcción del FSBL tipo reléase:
- Construimos el proyecto de FSBL:
- Nos dirigimos a Xilinx Tools y escogemos Create Zynq Boot Image:
PASOS PARA CORRER EN MEMORIA SPI:
- Agregamos los archivos en este orden:
(bootloader) FSBL.elf
(datafile) LED_wrapper.bit
(datafile) LES.elf
- Y cambiamos la extensión del archive BOOT.bin a BOOT.mcs y damos clic en Create Image.
- Generándose el archivo BOOT.mcs:
- Nos dirigimos ahora a Xilinx Tools y escogemos Program Flash:
- Seleccionamos zed_hw_platform y buscamos nuestro archivo BOOT.mcs y damos clic en programar:
- Programación de la memoria flash:
- Por ultimo apagar la tarjeta y cambiar los jumpers de la siguiente manera:
- Encender la tarjeta J
PASOS PARA CORRER EN MEMORIA SD:
- Nos dirigimos a Xilinx Tools y escogemos Create Zynq Boot Image:
- Agregamos los archivos en este orden:
(bootloader) FSBL.elf
(datafile) LED_wrapper.bit
(datafile)
LES.elf
- Verificamos que el archivo de salida sea BOOT.bin y damos clic en Create Image.
- Guardamos el archivo BOOT.bin en la memoria SD y la insertamos en la ZedBoard:
- Cambiamos los jumpers de la siguiente manera:
- Encender la tarjeta J
No hay comentarios.:
Publicar un comentario