Hi,
After running udma_demo project for Tiva-C TM4C1294 LaunchPad, I try to add the software DMA function to a RTOS project. There is a timer ISR works already on the LaunchPad. It turns on/off board led. I want it to do a DMA memory copy. udma_demo project does DMA initialization in its DMA interrupt routine. I supposed the timer ISR (void half_second_timer_ISR()) can do the same. It surprises me that it stuck at the first DMA mode read line. I have simplified to the following code. Is there any restriction on DMA initialization in RTOS ISR?
Thanks,
void half_second_timer_ISR() { static int on_off_flag = 0; static int on_off_counter = 0; int temp; on_off_counter++; if (on_off_counter == 1000){ on_off_counter = 0; on_off_flag = !on_off_flag; } if (on_off_flag == 0){ GPIO_write(Board_LED0, Board_LED_ON); temp = uDMAChannelModeGet(UDMA_CHANNEL_SW); } else{ GPIO_write(Board_LED0, Board_LED_OFF); } }