10#if HAL_USE_UART && EFI_USE_UART_DMA
16 int dmaPos = TS_DMA_BUFFER_SIZE - dmaStreamGetTransactionSize(
m_driver->dmarx);
19 dmaPos += TS_DMA_BUFFER_SIZE;
22 for (
int i = newReadPos; i < dmaPos; ) {
27 newReadPos = (++i) & (TS_DMA_BUFFER_SIZE - 1);
36 reinterpret_cast<UartDmaTsChannel*
>(uartp->dmaAdapterInstance)->copyDataFromDMA();
42 reinterpret_cast<UartDmaTsChannel*
>(uartp->dmaAdapterInstance)->copyDataFromDMA();
49 driver.dmaAdapterInstance =
this;
64 .cr2 = USART_CR2_STOP1_BITS | USART_CR2_LINEN,
78 size_t transferred = iqReadTimeout(&
fifoRxQueue, p_buffer,
size, timeout);
void start(uint32_t baud) override
UartDmaTsChannel(UARTDriver &uartDriver)
uint8_t buffer[TS_FIFO_BUFFER_SIZE]
input_queue_t fifoRxQueue
size_t readTimeout(uint8_t *buffer, size_t size, int timeout) override
uint8_t dmaBuffer[TS_DMA_BUFFER_SIZE]
UARTDriver *const m_driver
static void tsRxIRQIdleHandler(UARTDriver *uartp)
static void tsRxIRQHalfHandler(UARTDriver *uartp, uartflags_t full)
uint32_t uartflags_t
UART driver condition flags type.
UNUSED(samplingTimeSeconds)
uartcb_t txend1_cb
End of transmission buffer callback.
Structure representing an UART driver.