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