Debug bits for telebt
[fw/altos] / src / stm / ao_serial_stm.c
index 2568cf430fe5cb92eccc751ae463d2e8c8ccf796..9959e460771d6fb67d0318e333aaca961cdfb036 100644 (file)
@@ -70,6 +70,7 @@ _ao_usart_pollchar(struct ao_stm_usart *usart)
                uint8_t u;
                ao_fifo_remove(usart->rx_fifo,u);
                c = u;
+               ao_usb_putchar(c); ao_usb_flush();
        }
        return c;
 }
@@ -82,18 +83,20 @@ ao_usart_getchar(struct ao_stm_usart *usart)
        while ((c = _ao_usart_pollchar(usart)) == AO_READ_AGAIN)
                ao_sleep(&usart->rx_fifo);
        ao_arch_release_interrupts();
+       ao_usb_putchar(c); ao_usb_flush();
        return (char) c;
 }
 
 static inline uint8_t
-_ao_usart_sleep(struct ao_stm_usart *usart)
+_ao_usart_sleep_for(struct ao_stm_usart *usart, uint16_t timeout)
 {
-       return ao_sleep(&usart->rx_fifo);
+       return ao_sleep_for(&usart->rx_fifo, timeout);
 }
 
 void
 ao_usart_putchar(struct ao_stm_usart *usart, char c)
 {
+       ao_usb_putchar(c); ao_usb_flush();
        ao_arch_block_interrupts();
        while (ao_fifo_full(usart->tx_fifo))
                ao_sleep(&usart->tx_fifo);
@@ -217,9 +220,9 @@ _ao_serial1_pollchar(void)
 }
 
 uint8_t
-_ao_serial1_sleep(void)
+_ao_serial1_sleep_for(uint16_t timeout)
 {
-       return _ao_usart_sleep(&ao_stm_usart1);
+       return _ao_usart_sleep_for(&ao_stm_usart1, timeout);
 }
 
 void
@@ -260,9 +263,9 @@ _ao_serial2_pollchar(void)
 }
 
 uint8_t
-_ao_serial2_sleep(void)
+_ao_serial2_sleep_for(uint16_t timeout)
 {
-       return _ao_usart_sleep(&ao_stm_usart2);
+       return _ao_usart_sleep_for(&ao_stm_usart2, timeout);
 }
 
 void
@@ -303,9 +306,9 @@ _ao_serial3_pollchar(void)
 }
 
 uint8_t
-_ao_serial3_sleep(void)
+_ao_serial3_sleep_for(uint16_t timeout)
 {
-       return _ao_usart_sleep(&ao_stm_usart3);
+       return _ao_usart_sleep_for(&ao_stm_usart3, timeout);
 }
 
 void