static void usart_read_callback(struct usart_module *const usart_module) { /* Write byte to circular buffer */ if (circularBufferWrite(&rxcb, rx_buffer[0]) != 0) { printf("RX error\r\n"); } /* Set for usart callback */ usart_read_buffer_job(&usart_debug, (uint8_t *)rx_buffer, MAX_RX_BUFFER_LENGTH); }
/** Transfer bytes from a receive buffer into receive FIFO. * \warning This assumes there is enough space (if not, usbFatalError() will * be called). There should always be enough space, since a receive * is never queued unless there is enough space. */ static void transferIntoReceiveFIFO(uint8_t *buffer, uint32_t length) { uint32_t i; if (circularBufferSpaceRemaining(&receive_fifo) < length) { // This should never happen. usbFatalError(); } for (i = 0; i < length; i++) { circularBufferWrite(&receive_fifo, buffer[i], 1); } }