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.

CC2538: CC2538 UDMA error interrupt got triggered as soon as enabled.

Part Number: CC2538

Hi,

I am trying to implement the data transfer from memory to the RF TX FIFO using uDMA. Here is my code:

#include "udma.h"
#include "hw_ints.h"
#include "interrupt.h"
#include "hw_rfcore_sfr.h"
#define RF_TX_CHANNEL UDMA_CH2_RESERVED0
tDMAControlTable ucDMAControlTable[4] __attribute__ ((aligned(1024)));
void 
uDMAIntHandler(void)
{
    while(1);
}
void uDMAErrIntHandler(void){
	while(1);

}

char *test="TESTING";
int main(void){
	uDMAEnable();
	uDMAControlBaseSet(&ucDMAControlTable[0]);
	
	uDMAChannelAttributeDisable(RF_TX_CHANNEL, UDMA_ATTR_ALL);
	
	uDMAChannelControlSet(RF_TX_CHANNEL|UDMA_PRI_SELECT,
						  UDMA_SIZE_8|UDMA_SRC_INC_8|UDMA_DST_INC_NONE
							|UDMA_ARB_128);
	uDMAChannelTransferSet(RF_TX_CHANNEL | UDMA_PRI_SELECT,
                           UDMA_MODE_AUTO, test, (void *)RFCORE_SFR_RFDATA,
                           sizeof(test));
	IntEnable(INT_UDMA);
    IntEnable(INT_UDMAERR);
	uDMAChannelEnable(RF_TX_CHANNEL);
    uDMAChannelRequest(RF_TX_CHANNEL);  
	return 0;



}

Everytime I executed my program to the "IntEnable(INT_UDMAERR);" it would trigger a udma error interrupt immediately. However, if I commented out the "uDMAChannelRequest(RF_TX_CHANNEL);" and executed it again, the error interrupt will not be trigger(but I cannot start the dma action).

Could anyone help me find the problem?