uart_echo_riscv.ino

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

Permet de vérifier la communication série avec le SoC, essentielle pour le débogage sans JTAG.

Activez un bloc UART dans Efinity. Utilisez un terminal série (115200 bauds) connecté au FPGA. Ce code suppose une interface APB ou AXI-lite standard. Ajustez les masques de statut selon la datasheet 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;
}

← Retour à la fiche