diff options
| author | Dean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28> | 2012-02-18 23:33:12 +0000 |
|---|---|---|
| committer | Dean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28> | 2012-02-18 23:33:12 +0000 |
| commit | 3879d85a2e090232d8fc4b63bdc3ba240447214f (patch) | |
| tree | c0d138685f664d079e9218d611227aab5919bc15 /LUFA/Drivers/Peripheral/AVR8 | |
| parent | 917509026676ef98c872ad3e7f2769af1c115218 (diff) | |
Add build tests to verify correct compilation of as many modules as possible under as many architectures as possible.
Fix broken compilation of LUFA under C++ compilers when the Serial peripheral module header file is included in a C++ source file.
Fix missing semicolon in the UC3 architecture host pipe functions.
Fix failed compilation for the XMEGA architecture if USB_DEVICE_ONLY us not specified.
git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@2053 d5102386-fcda-11dd-9fdb-3debd5008f28
Diffstat (limited to 'LUFA/Drivers/Peripheral/AVR8')
| -rw-r--r-- | LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c | 23 | ||||
| -rw-r--r-- | LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h | 72 |
2 files changed, 49 insertions, 46 deletions
diff --git a/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c b/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c index 4c2f1ae3..f391c06e 100644 --- a/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c +++ b/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c @@ -89,3 +89,26 @@ void Serial_SendData(const uint8_t* Buffer, Serial_SendByte(*(Buffer++)); } +void Serial_CreateStream(FILE* Stream) +{ + if (!(Stream)) + { + Stream = &USARTSerialStream; + stdin = Stream; + stdout = Stream; + } + + *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW); +} + +void Serial_CreateBlockingStream(FILE* Stream) +{ + if (!(Stream)) + { + Stream = &USARTSerialStream; + stdin = Stream; + stdout = Stream; + } + + *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW); +} diff --git a/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h index 7b8c46ee..687ea74a 100644 --- a/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h +++ b/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h @@ -135,6 +135,32 @@ */ void Serial_SendData(const uint8_t* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1); + /** Creates a standard character stream from the USART so that it can be used with all the regular functions + * in the avr-libc \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created + * stream is bidirectional and can be used for both input and output functions. + * + * Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single + * fetch, as the endpoint will not be ready at some point in the transmission, aborting the transfer. However, this may + * be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own + * line buffering. + * + * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout + * and \c stdin will be configured to use the USART. + * + * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used. + */ + void Serial_CreateStream(FILE* Stream); + + /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates + * the transfer. + * + * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout + * and \c stdin will be configured to use the USART. + * + * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used. + */ + void Serial_CreateBlockingStream(FILE* Stream); + /* Inline Functions: */ /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to * standard 8-bit, no parity, 1 stop bit settings suitable for most applications. @@ -168,52 +194,6 @@ PORTD &= ~(1 << 2); } - /** Creates a standard character stream from the USART so that it can be used with all the regular functions - * in the avr-libc \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created - * stream is bidirectional and can be used for both input and output functions. - * - * Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single - * fetch, as the endpoint will not be ready at some point in the transmission, aborting the transfer. However, this may - * be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own - * line buffering. - * - * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout - * and \c stdin will be configured to use the USART. - * - * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used. - */ - static inline void Serial_CreateStream(FILE* Stream) - { - if (!(Stream)) - { - Stream = &USARTSerialStream; - stdin = Stream; - stdout = Stream; - } - - *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW); - } - - /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates - * the transfer. - * - * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout - * and \c stdin will be configured to use the USART. - * - * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used. - */ - static inline void Serial_CreateBlockingStream(FILE* Stream) - { - if (!(Stream)) - { - Stream = &USARTSerialStream; - stdin = Stream; - stdout = Stream; - } - - *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW); - } - /** Indicates whether a character has been received through the USART. * * \return Boolean \c true if a character has been received, \c false otherwise. |
