diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2015-05-17 13:01:13 +1000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2015-05-17 13:01:13 +1000 |
commit | 366a8461566edd7982e8eb6b0790365f6d99e3ab (patch) | |
tree | 486cc5b4af162143ecca661e1e738b73668c958e /LUFA | |
parent | a9364a866f99334f3aee5a58480ae5bc5e7a5a02 (diff) | |
download | lufa-366a8461566edd7982e8eb6b0790365f6d99e3ab.tar.gz lufa-366a8461566edd7982e8eb6b0790365f6d99e3ab.tar.bz2 lufa-366a8461566edd7982e8eb6b0790365f6d99e3ab.zip |
Fix incorrect XMEGA serial driver stream functions (thanks to William Patterson).
Diffstat (limited to 'LUFA')
-rw-r--r-- | LUFA/DoxygenPages/ChangeLog.txt | 2 | ||||
-rw-r--r-- | LUFA/DoxygenPages/MigrationInformation.txt | 3 | ||||
-rw-r--r-- | LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c | 12 | ||||
-rw-r--r-- | LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h | 8 |
4 files changed, 15 insertions, 10 deletions
diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt index 3b28fe57f..4935e5f83 100644 --- a/LUFA/DoxygenPages/ChangeLog.txt +++ b/LUFA/DoxygenPages/ChangeLog.txt @@ -19,7 +19,7 @@ * exit automatically unless an external reset was the last reset cause (thanks to Alex Kazik) * * <b>Fixed:</b> - * - None. + * - Fixed broken XMEGA serial stream driver due to missing USART base pointer parameter (thanks to William Patterson) * * \section Sec_ChangeLog140928 Version 140928 * <b>New:</b> diff --git a/LUFA/DoxygenPages/MigrationInformation.txt b/LUFA/DoxygenPages/MigrationInformation.txt index baabb3f82..f4c9fd81c 100644 --- a/LUFA/DoxygenPages/MigrationInformation.txt +++ b/LUFA/DoxygenPages/MigrationInformation.txt @@ -12,7 +12,8 @@ * * \section Sec_MigrationXXXXXX Migrating from 140928 to XXXXXX * <b>Non-USB Library Components</b> - * - The ATPROGRAM LUFA build system module now defaults to the Atmel ICE debuger tool, instead of the Atmel JTAG ICE3. + * - The ATPROGRAM LUFA build system module now defaults to the Atmel ICE debugger tool, instead of the Atmel JTAG ICE3. + * - The \x Serial_CreateStream() and \c Serial_CreateBlockingStream() functions now require a USART base pointer for XMEGA devices as the first parameter. * * \section Sec_Migration140928 Migrating from 140302 to 140928 * <b>Device Mode</b> diff --git a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c index 4e2935730..ff3ac0d4f 100644 --- a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c +++ b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c @@ -95,19 +95,20 @@ void Serial_SendData(USART_t* const USART, Serial_SendByte(USART, *((uint8_t*)Buffer++)); } -void Serial_CreateStream(FILE* Stream) +void Serial_CreateStream(USART_t* USART, FILE* Stream) { if (!(Stream)) { Stream = &USARTSerialStream; stdin = Stream; stdout = Stream; - } + } - *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW); + *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW); + fdev_set_udata(Stream, USART); } -void Serial_CreateBlockingStream(FILE* Stream) +void Serial_CreateBlockingStream(USART_t* USART, FILE* Stream) { if (!(Stream)) { @@ -116,7 +117,8 @@ void Serial_CreateBlockingStream(FILE* Stream) stdout = Stream; } - *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW); + *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW); + fdev_set_udata(Stream, USART); } #endif diff --git a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h index 1fed433e6..58f97011b 100644 --- a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h +++ b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h @@ -151,22 +151,24 @@ * 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] USART Pointer to the base of the USART peripheral within the device. * \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); + void Serial_CreateStream(USART_t* USART, FILE* Stream); - /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates + /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates * the transfer. * + * \param[in,out] USART Pointer to the base of the USART peripheral within the device. * \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); + void Serial_CreateBlockingStream(USART_t* USART, FILE* Stream); /* Inline Functions: */ /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to |