El propósito de este artículo es producir un demo que utilize el compilador ARM en el HPS en la plataforma DE-25 FPGA Dev Kit
Por favor refieraze al previo artículo Parte 6 donde el compilador ARM fue instalado en una computadora de Linux antes de proceder con este artículo. Asegurese que todos los archivos del directorio SoC esten presente de los ejemplos del SoC de los recursos en el CD de la Parte 1. En este caso estamos cubriendo el demo hps_led_key,
con los siguientes archivos relevantes,
gpio_lib.c gpio_lib.h led_lib.c led_lib.h main.c Makefile
Para propósitos de ilustración de este demo, solo modificamos el programa main.c como se muestra a continuación,
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include "gpio_lib.h"
#include "led_lib.h"
/****************************************************************
* Main
****************************************************************/
int main(int argc, char **argv)
{
GPIO_HANDLE *line_key;
unsigned int io_led=0;
int loop;
int fd_led;
unsigned int key_value;
bool bLedLight = true;
line_key = gpio_open_line("/dev/gpiochip0", 16/*line 16 for KEY*/, 0 /*input*/);
fd_led = led_fd_open(io_led);
loop = 20;
while (loop >= 0) {
//gpio_get_value(io_key, &value);
gpio_get_line_value(line_key, &key_value); // key_value is low active
if (!key_value || bLedLight)
led_fd_write(fd_led, "1", 2); // light led
else
led_fd_write(fd_led, "0", 2); // unlight led
printf("DigiKey Coffee Cup Input Key: %x\n", key_value);
bLedLight = bLedLight?false:true;
usleep(800*1000); // 0.8 second
loop--;
}
led_fd_close(fd_led);
gpio_close_line(line_key);
return 0;
}
para hacer la compilación de ARM en este demo, por favor proceda con el siguiente comando,
digikey_coffee_cup: ~$ export CROSS_COMPILE=aarch64-none-linux-gnu-
Ahora se procede con la herramienta make como se ilustra a continuación,
digikey_coffee_cup: ~$ make
aarch64-none-linux-gnu-gcc -g -O0 -Werror -Wall -c main.c -o main.o
aarch64-none-linux-gnu-gcc -g -O0 -Werror -Wall -c led_lib.c -o led_lib.o
aarch64-none-linux-gnu-gcc -g -O0 -Werror -Wall -c gpio_lib.c -o gpio_lib.o
aarch64-none-linux-gnu-gcc -g -O0 -Werror -Wall main.o led_lib.o gpio_lib.o -o hps_led_key
aarch64-none-linux-gnu-nm hps_led_key > hps_led_key.map
Para que este ejecutable binario ARM corra en el HPS en la plataforma DE-25 FPGA Dev Kit. Proceda a copiar el binario hps_led_key a la plataforma DE-25 FPGA Dev Kit desde la computadora de Linux from the Linux host via SSH the WiFi Router as outlined in a previous article Parte 5. El siguiente comando scp copia el archivo bianrio ARM desde la computadora de Linux a la plataforma DE-25 HPS via SSH (Por favor cambien la dirección de IP address y el path como sea necesario),
digikey_coffee_cup: ~$ scp hps_led_key terasic@192.168.1.131:/home/terasic/SoC
Ejecute el binario ARM para el HPS via SSH o por medio del terminal PuTTY conectado por USB como sea necesario,
El botón HPS en la plataforma DE-25 FPGA Dev Kit fue activado y apropiadamente reconocido por el binario ARM y corriendo en el HPS para el Agilex 5, también el HPS connectado al LED prendido/apagado en la plataforma como se esperaba. Esto completa el primer demo de HPS de esta serie de la plataforma DE-25 FPGA Dev Kit.
La plataforma DE-25 FPGA Dev Kit es poderosa la cual contiene un HPS/FPGA Agilex 5 (disponible en serie D o serie E dependiendo del caso bajo consideración) capaz de implementar los pedazos de Tensor AI,
que van mas alla que lo que tradicionalmente/clasicamente los pedazos de DSP usados en el pasado,
y está disponible en DigiKey.
Que tenga un buen día.
Este artículo está disponible en inglés aquí.
This article is available in english here.




