From 0a7816059e8606337381c8d9c70f3f0bb68da52e Mon Sep 17 00:00:00 2001 From: Dean Date: Sun, 26 Dec 2010 13:01:37 +0000 Subject: Make a new general RingBuffer.h misc library driver, instead of the per-application LightweightRingBuff.h ring buffers. Change over projects to use the new driver. Add ORDERED_EP_CONFIG to the device Projects (only) that use only a single class driver, or where the endpoint ordering is fixed, to save on compiled binary size. Added new GCC_FORCE_POINTER_ACCESS() macro to correct GCC's mishandling of struct pointers. git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@1614 d5102386-fcda-11dd-9fdb-3debd5008f28 --- Projects/USBtoSerial/USBtoSerial.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'Projects/USBtoSerial/USBtoSerial.c') diff --git a/Projects/USBtoSerial/USBtoSerial.c b/Projects/USBtoSerial/USBtoSerial.c index 477dd44f..e775541f 100644 --- a/Projects/USBtoSerial/USBtoSerial.c +++ b/Projects/USBtoSerial/USBtoSerial.c @@ -39,9 +39,16 @@ /** Circular buffer to hold data from the host before it is sent to the device via the serial port. */ RingBuff_t USBtoUSART_Buffer; +/** Underlying data buffer for \ref USBtoUSART_Buffer, where the stored bytes are located. */ +uint8_t USBtoUSART_Buffer_Data[128]; + /** Circular buffer to hold data from the serial port before it is sent to the host. */ RingBuff_t USARTtoUSB_Buffer; +/** Underlying data buffer for \ref USARTtoUSB_Buffer, where the stored bytes are located. */ +uint8_t USARTtoUSB_Buffer_Data[128]; + + /** LUFA CDC Class driver interface configuration and state information. This structure is * passed to all CDC Class driver functions, so that multiple instances of the same class * within a device can be differentiated from one another. @@ -73,8 +80,8 @@ int main(void) { SetupHardware(); - RingBuffer_InitBuffer(&USBtoUSART_Buffer); - RingBuffer_InitBuffer(&USARTtoUSB_Buffer); + RingBuffer_InitBuffer(&USBtoUSART_Buffer, USBtoUSART_Buffer_Data, sizeof(USBtoUSART_Buffer_Data)); + RingBuffer_InitBuffer(&USARTtoUSB_Buffer, USARTtoUSB_Buffer_Data, sizeof(USARTtoUSB_Buffer_Data)); LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); sei(); @@ -92,7 +99,7 @@ int main(void) } /* Check if the UART receive buffer flush timer has expired or the buffer is nearly full */ - RingBuff_Count_t BufferCount = RingBuffer_GetCount(&USARTtoUSB_Buffer); + uint16_t BufferCount = RingBuffer_GetCount(&USARTtoUSB_Buffer); if ((TIFR0 & (1 << TOV0)) || (BufferCount > 200)) { /* Clear flush timer expiry flag */ -- cgit v1.2.3