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.

TMS320F28379D: CPU2 can't initialize the SCIA, and read the buf, but CPU1 can.

Part Number: TMS320F28379D

Hi, Engineers

I tried to initialize the SCIA using CPU2, some GPIO initialization is running on CPU1, however, it doesn't work. program is shown below

below is running at CPU2

void initSCIA()
{
eallow();
SCIA.SCICTL2.bit.TXINTENA = 1;
SCIA.SCICTL2.bit.RXBKINTENA = 1;
SCIA.SCILBAUD.all = 3&0xFF; // baud rate
SCIA.SCIHBAUD.all = 3>>8;
SCIA.SCICCR.bit.LOOPBKENA = 0; // Disable loop back
SCIA.SCIFFTX.all = 0xC022;//0xC022;
SCIA.SCIFFRX.all = 0x0022;//0x0022; Interrupt when FIFO depth=2
SCIA.SCIFFCT.all = 0x00;

SCIA.SCICTL1.all = 0x0023; // Relinquish SCI from Reset
SCIA.SCIFFTX.bit.TXFIFORESET = 1;
SCIA.SCIFFRX.bit.RXFIFORESET = 1;
protect();
}

below is running on CPU1

void initSCIA()
{
eallow();
system.PCLKCR7.bit.SCI_A = 1; // Enable LOSCLK clock for SCI-A
GPIOctrl.GPAGMUX1.bit.GPIO8 = 1;
GPIOctrl.GPAMUX1.bit.GPIO8 = 2; // Enable SCIA TXD = GPIO08
GPIOctrl.GPACSEL2.bit.GPIO8 = 1;
GPIOctrl.GPAGMUX2.bit.GPIO28 = 0;
GPIOctrl.GPAMUX2.bit.GPIO28 = 1;// Enable SCIA RXD = GPIO28
GPIOctrl.GPACSEL4.bit.GPIO28 = 1;
GPIOctrl.GPAPUD.bit.GPIO8 = 1; // Disable PUs for GPIO8
GPIOctrl.GPAPUD.bit.GPIO28 = 1; // Disable PUs for GPIO28
protect();
}

But when I merge these code together and running on CPU1, then, the communication is established well.

Could you help on this case?