This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Problem on initializing DMA in ISR with Tiva-C

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);
	}
}