/* * $Id: sausart.c,v 1.4 2008/01/06 18:15:50 nbrk Exp $ */ #include #include /* * driver for USART. */ void sausart_early_putchar(char ch) { /* * Put a character into an unconfigured console. * Note that USART1 should be already configured (clocks/un-pio, etc.). * Such configuration is done in config_machineinit(). */ /* wait for previous character to transmit */ while( ((*AT91C_US1_CSR) & AT91C_US_TXRDY) == 0) ; /* if we encounter \n (LF), send \r\n (CRLF) */ if (ch == '\n') { *AT91C_US1_THR = 0x0d; while( ((*AT91C_US1_CSR) & AT91C_US_TXRDY) == 0) ; *AT91C_US1_THR = 0x0a; return; } /* put current character into Transmit Hold Register */ *AT91C_US1_THR = ch; }