aboutsummaryrefslogtreecommitdiff
path: root/Projects/XPLAINBridge/XPLAINBridge.c
diff options
context:
space:
mode:
authorDean Camera <[email protected]>2010-12-26 13:01:37 +0000
committerDean Camera <[email protected]>2010-12-26 13:01:37 +0000
commit39ac72f2d12a9c62b2e876de4eee6c34a864ff74 (patch)
tree1a33de5ae88b184555af86173669730c55dfa4b3 /Projects/XPLAINBridge/XPLAINBridge.c
parent12418e6eaffcf81dc160ab760df9682e7e34c3fa (diff)
downloadqmk_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.c12
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();