uart_echo_riscv.ino
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;
}