Hi,
I am using TM4C123BH6ZRB/LM4F212H5BB with IAR Embbeded Workbench and I looked at uddma_demo from TivaWare_C_Series-2.0.1.11577\examples\boards\dk-tm4c123g\udma_demo. I am curious on the way this chip invoke the ISR. According udma_demo, UART0IntHandler() is called when the UART0 DMA transferred is completed. However in the non-DMA interrupt model, the same vector calls UART0IntHandler() when there is data triggered in FIFO. If this is correct, in DMA mode how does this chip generates UART0 FIFO intterupt to DMA engine?
In my device, I am not interesting in using memory-memory DMA transferring therefore I am ignoring uDMAIntHandler() in udma_demo.
The reason we are asking is we are facing and SPI issue. This chip is very busy serves ADC ISR. By the time that SSI0 Slave Rx interrupted, the SPI Rx FIFO already over-ran. We used uma_demo to implement SPI Rx DMA and hope for DMA can pull the FIFO quicker than the non-DMA. However, I ran into SSI0 DMA bus error.
If I turn the ADC data processing off, the SSI0 DMA bus error goes away. With other manufacturer micro-controller, there is a separate DMA interrupt vector for DMA transferred is completed. I am not sure why this TM4C123BH6ZRB/LM4F212H5BB any different. Please help to clarify.
Thanks,
Dennis Nguyen