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.

MSP430FR6047: Program execution stops during DMA transfer

Part Number: MSP430FR6047

I'm sending some data out using DMA over UART3. The DMA transfer is working, and data is going out on the UART. The problem is that the program does not continue execution after "UART_Send_Bytes" is called. Using the emulator, it locks up on the last instruction. Single stepping the emulator stays at the last instruction. Code below:

void UART_Send_Bytes(unsigned char *address, unsigned char size)
{
// clear interrupt flag - added by Steve on 6/21/2018
DMA3CTL &= ~DMAIFG;

// Source address
__data20_write_long((unsigned long) &DMA3SA,(unsigned long) address);

// Number of data to store
DMA3SZ = size;
DMA3CTL |= DMAEN + DMAIE; // Enable DMA.

// make a fake edge trigger to activate DMA
UCA3IFG &= ~UCTXIFG;
UCA3IFG |= UCTXIFG;

LPM0; // If I delete this, DMA is not successful.
DMA3CTL &= ~(DMAEN + DMAIE); // Disable DMA. Emulator gets stuck here.

}

**Attention** This is a public forum