diff options
author | Dean Camera <[email protected]> | 2010-12-26 13:01:37 +0000 |
---|---|---|
committer | Dean Camera <[email protected]> | 2010-12-26 13:01:37 +0000 |
commit | 39ac72f2d12a9c62b2e876de4eee6c34a864ff74 (patch) | |
tree | 1a33de5ae88b184555af86173669730c55dfa4b3 /Projects/XPLAINBridge/XPLAINBridge.c | |
parent | 12418e6eaffcf81dc160ab760df9682e7e34c3fa (diff) | |
download | qmk_firmware-39ac72f2d12a9c62b2e876de4eee6c34a864ff74.tar.gz qmk_firmware-39ac72f2d12a9c62b2e876de4eee6c34a864ff74.zip |
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.
Diffstat (limited to 'Projects/XPLAINBridge/XPLAINBridge.c')
-rw-r--r-- | Projects/XPLAINBridge/XPLAINBridge.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Projects/XPLAINBridge/XPLAINBridge.c b/Projects/XPLAINBridge/XPLAINBridge.c index 912e68367f..c71a42103e 100644 --- a/Projects/XPLAINBridge/XPLAINBridge.c +++ b/Projects/XPLAINBridge/XPLAINBridge.c @@ -66,9 +66,15 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface = /** Circular buffer to hold data from the host before it is sent to the device via the serial port. */ RingBuff_t USBtoUART_Buffer; +/** Underlying data buffer for \ref USBtoUART_Buffer, where the stored bytes are located. */ +uint8_t USBtoUART_Buffer_Data[128]; + /** Circular buffer to hold data from the serial port before it is sent to the host. */ RingBuff_t UARTtoUSB_Buffer; +/** Underlying data buffer for \ref UARTtoUSB_Buffer, where the stored bytes are located. */ +uint8_t UARTtoUSB_Buffer_Data[128]; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. @@ -130,7 +136,7 @@ void UARTBridge_Task(void) } /* Check if the UART receive buffer flush timer has expired or buffer is nearly full */ - RingBuff_Count_t BufferCount = RingBuffer_GetCount(&UARTtoUSB_Buffer); + uint16_t BufferCount = RingBuffer_GetCount(&UARTtoUSB_Buffer); if ((TIFR0 & (1 << TOV0)) || (BufferCount > 200)) { /* Clear flush timer expiry flag */ @@ -199,8 +205,8 @@ void EVENT_USB_Device_ConfigurationChanged(void) TCCR0B = ((1 << CS02) | (1 << CS00)); /* Initialize ring buffers used to hold serial data between USB and software UART interfaces */ - RingBuffer_InitBuffer(&USBtoUART_Buffer); - RingBuffer_InitBuffer(&UARTtoUSB_Buffer); + RingBuffer_InitBuffer(&USBtoUART_Buffer, USBtoUART_Buffer_Data, sizeof(USBtoUART_Buffer_Data)); + RingBuffer_InitBuffer(&UARTtoUSB_Buffer, UARTtoUSB_Buffer_Data, sizeof(UARTtoUSB_Buffer_Data)); /* Start the software USART */ SoftUART_Init(); |