void DmaAbort(DMA_CHID_T dmaCh) { Chip_DMA_DisableChannel(LPC_DMA, dmaCh); while ((Chip_DMA_GetBusyChannels(LPC_DMA) & (1 << dmaCh)) != 0) {} Chip_DMA_AbortChannel(LPC_DMA, dmaCh); Chip_DMA_EnableChannel(LPC_DMA, dmaCh); }
/* Setup DMA UART RX support, but do not queue descriptors yet */ static void dmaRXSetup(void) { /* Setup UART 0 RX channel for the following configuration: - Peripheral DMA request (UART 0 RX channel) - Single transfer - Low channel priority */ Chip_DMA_EnableChannel(LPC_DMA, DMAREQ_USART0_RX); Chip_DMA_EnableIntChannel(LPC_DMA, DMAREQ_USART0_RX); Chip_DMA_SetupChannelConfig(LPC_DMA, DMAREQ_USART0_RX, (DMA_CFG_PERIPHREQEN | DMA_CFG_TRIGBURST_SNGL | DMA_CFG_CHPRIORITY(3))); }