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: Multiple applications in a single CPU

Part Number: TMS320F28379D

Hello,

I have implemented 2 applications to run both within CPU1. Application_1 is a custom bootloader which programs (through FAPI) application_2 binary into FLASH. Once it has been programmed, then it long branches to it and starts executing application_2 (Blink LED). The problem is that code is jumping to ESTOP0 when, in application_2, function "InitGpio()" is executed. As this doesn't happen if I only execute application_2 (without application_1), could anyone tell me if there is anything which must be taken into account when executing application_2 coming from executing application_1?

Is it possible that there is some sort of conflict when initializing something in application_2 because, for example, InitGpio() has already been called from application_1.

Here is the important code of application_1:

InitSysCtrl();
InitGpio();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EnableInterrupts();
InitFlash();
SeizeFlashPump();
/* .
 * .
 * .
 * application_1 code
 * .
 * .
 * .
*/
ReleaseFlashPump();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
asm (" LB 0x082000");

And here is the important code of application_2:

InitSysCtrl();
InitGpio();
GPIO_SetupPinMux(31, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(31, GPIO_OUTPUT, GPIO_PUSHPULL);
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EINT;
ERTM;
/* .
 * .
 * .
 * application_2 code
 * .
 * .
 * .
*/

Best regards,

Adria