UART_GetDefaultConfig(&uartConfig);
uartConfig.baudRate_Bps = 1000000;
uartConfig.enableTx = false;
uartConfig.enableRx = true;
uartConfig.stopBitCount=kUART_OneStopBit;
statusSt= UART_Init(UART1, &uartConfig, UART1_CLK_FREQ);
/* Init DMAMUX */
DMAMUX_Init(UART1_DMAMUX_BASEADDR);
/* Set channel for UART */
DMAMUX_SetSource(UART1_DMAMUX_BASEADDR, UART_RX_DMA_CHANNEL, UART_RX_DMA_REQUEST);
DMAMUX_EnableChannel(UART1_DMAMUX_BASEADDR, UART_RX_DMA_CHANNEL);
/* Init the EDMA module */
EDMA_GetDefaultConfig(&config);
config.enableRoundRobinArbitration=true;
EDMA_Init(UART1_DMA_BASEADDR, &config);
EDMA_CreateHandle(&g_uartRxEdmaHandle, UART1_DMA_BASEADDR, UART_RX_DMA_CHANNEL);
edma_transfer_config_t xferConfig;
/* Install TCD memory. */
EDMA_InstallTCDMemory(&g_uartRxEdmaHandle, tcdMemoryPoolPtr, 1);
/* Prepare transfer to receive data to ring buffer. */
EDMA_PrepareTransfer(&xferConfig, (void *)UART_GetDataRegisterAddress(UART1), sizeof(uint8_t), g_ringBuffer,
sizeof(uint8_t), sizeof(uint8_t), UART1_BUFFER_LENGTH, kEDMA_PeripheralToMemory);
/* Submit transfer. */
g_uartRxEdmaHandle.tcdUsed = 1U;
g_uartRxEdmaHandle.tail = 0U;
EDMA_TcdReset(&g_uartRxEdmaHandle.tcdPool[0U]);
EDMA_TcdSetTransferConfig(&g_uartRxEdmaHandle.tcdPool[0U], &xferConfig, tcdMemoryPoolPtr);
/* Enable major interrupt for calculating the received bytes. */
// g_uartRxEdmaHandle.tcdPool[0U].CSR |= DMA_CSR_INTMAJOR_MASK;
/* There is no live chain, TCD block need to be installed in TCD registers. */
EDMA_InstallTCD(UART1_DMA_BASEADDR, UART_RX_DMA_CHANNEL, &g_uartRxEdmaHandle.tcdPool[0U]);
/* Start EDMA transfer. */
EDMA_StartTransfer(&g_uartRxEdmaHandle);
/* Enable UART RX EDMA. */
UART_EnableRxDMA(UART1, true);
UART_EnableInterrupts(UART1, kUART_NoiseErrorInterruptEnable |kUART_FramingErrorInterruptEnable
|kUART_RxOverrunInterruptEnable);
EnableIRQ(UART1_ERR_IRQn);
NVIC_SetPriority(UART1_ERR_IRQn, 0); /* 0 Set priority to interrupt */