Return to sausart.c CVS log | Up to [local] / funnyos / arch / sam7s64 / dev |
File: [local] / funnyos / arch / sam7s64 / dev / sausart.c (download)
Revision 1.2, Sat Nov 24 17:13:45 2007 UTC (16 years, 6 months ago) by nbrk
make usart_early_putchar() convert each \n into CRLF. |
/* * $Id: sausart.c,v 1.2 2007/11/24 17:13:45 nbrk Exp $ */ #include <sys/types.h> #include <sys/device.h> #include <arch/sam7s64/dev/at91sam7.h> /* * driver for USART. */ void sausart_early_putchar(char ch) { /* * Put a character into an unconfigured console. * Note that USART0 (DBGU) should be already configured (clocks/un-pio, etc.). * Such configuration is done in config_machineinit(). */ /* wait for previous character to transmit */ while( ((*AT91C_US0_CSR) & AT91C_US_TXRDY) == 0) ; /* if we encounter \n (LF), send \r\n (CRLF) */ if (ch == '\n') { *AT91C_US0_THR = 0x0d; while( ((*AT91C_US0_CSR) & AT91C_US_TXRDY) == 0) ; *AT91C_US0_THR = 0x0a; return; } /* put current character into Transmit Hold Register */ *AT91C_US0_THR = ch; }