The following code should make a loopback between UART RX and TX (echo).
However, it seems that first N typed chars (from PC towards the board) are not successfully absorbed.
After N characters (few dozens, I guess), it works correctly (I get an echo for each character I type).
Any ideas?
However, it seems that first N typed chars (from PC towards the board) are not successfully absorbed.
After N characters (few dozens, I guess), it works correctly (I get an echo for each character I type).
Any ideas?
Code:
#include "altera_avalon_uart_regs.h"
#include "system.h"
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
#define UART_BASE UART_0_BASE
int main ()
{
u8 uart_rx_char;
u16 uart_st_reg;
while (1) {
uart_st_reg = (u16)IORD_ALTERA_AVALON_UART_STATUS(UART_BASE);
if (uart_st_reg & ALTERA_AVALON_UART_STATUS_RRDY_MSK) {
uart_rx_char = (u8)IORD_ALTERA_AVALON_UART_RXDATA(UART_BASE);
IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE, uart_rx_char);
}
}
return 0;
}