gpio_blink_riscv.ino

Efinix Sapphire RV64: SoC RISC-V de 64 bits configurable para FPGA · Archivo : gpio_blink_riscv.ino · Lenguaje : C (RISC-V) · Uso : Faire clignoter une LED via les GPIO configurés dans Efinity.

Ejemplo minimalista para controlar un GPIO mediante acceso directo a memoria, ideal para probar la cadena de compilación RISC-V.

Configure un bloque GPIO en Efinity y anote su dirección base. Compile con riscv64-unknown-elf-gcc. Cargue el binario en el FPGA mediante JTAG o modo bootloader. Verifique el comportamiento en los LEDs físicos de la placa de desarrollo.

gpio_blink_riscv.ino

#include <stdint.h>
#include "platform.h"

// Adresse de base des GPIO (à vérifier dans votre configuration Efinity)
#define GPIO_BASE 0x80000000
#define GPIO_OUT  (*(volatile uint32_t *)(GPIO_BASE + 0x00))
#define GPIO_DIR  (*(volatile uint32_t *)(GPIO_BASE + 0x04))

void delay_ms(uint32_t ms) {
    // Boucle simple de délai (imprécise, à remplacer par un timer pour la prod)
    for (volatile uint32_t i = 0; i < ms * 10000; i++);
}

int main() {
    // Configurer le pin 0 en sortie
    GPIO_DIR |= (1 << 0);
    
    while (1) {
        GPIO_OUT ^= (1 << 0); // Toggle LED
        delay_ms(500);
    }
    return 0;
}

← Volver a la ficha