uart_echo_riscv.ino

Efinix Sapphire RV64: SoC RISC-V de 64 bits configurable para FPGA · Archivo : uart_echo_riscv.ino · Lenguaje : C (RISC-V) · Uso : Implémenter une boucle d'écho série (UART) pour le débogage interactif.

Permite verificar la comunicación serie con el SoC, esencial para depurar sin JTAG.

Habilite un bloque UART en Efinity. Use una terminal serie (115200 baudios) conectada al FPGA. Este código asume una interfaz APB o AXI-lite estándar. Ajuste las máscaras de estado según la hoja de datos del IP Efinix.

uart_echo_riscv.ino

#include <stdint.h>

// Adresse de base UART (à adapter selon la config Efinity)
#define UART_BASE 0x80001000
#define UART_DATA (*(volatile uint8_t *)(UART_BASE + 0x00))
#define UART_STAT (*(volatile uint8_t *)(UART_BASE + 0x04))

#define RX_READY 0x01
#define TX_READY 0x02

void uart_putc(char c) {
    while (!(UART_STAT & TX_READY));
    UART_DATA = c;
}

int main() {
    char c;
    while (1) {
        if (UART_STAT & RX_READY) {
            c = UART_DATA;
            uart_putc(c); // Echo
        }
    }
    return 0;
}

← Volver a la ficha