/* for gdb compatibility */
int serial_readchar(u8 timeout) {
+ int ret;
sci_timer = timeout * 152;
while (sci_timer && sci_rx_buf_ptr_start == sci_rx_buf_ptr); /* spin */
if (sci_timer == 0) return SERIAL_TIMEOUT;
- return sci_rx_buf[sci_rx_buf_ptr_start++];
+ ret = sci_rx_buf[sci_rx_buf_ptr_start];
+ sci_rx_buf_ptr_start++;
+ sci_rx_buf_ptr_start %= BUFFER_LEN;
+ return ret;
}
void serial_write(const char *str, int len) {
_io_ports[M6811_SCDR] = *c; /* send byte */
}
}
+