Hi Champ,
I am asking for my customer.
They have initialized the peripheral stage and PIE stage (Initialize PIE vector table, re-mapped to ISR functions) and do the Interrupt_enable(INT_x) to propagate the interrupt request correctly, while they did it on purpose without doing the enable the global interrupt (EINT) after PIE initialization, and hold it for a while for some background stuffs, then finally enable the global interrupt (EINT).
The pseudo code is as follows,
void init_interrupt (void)
{
EALLOW;
PieVectTable.SCIA_RX_INT = &Uart_Rx_Isr;
..... // other peripherals' PIE re-mapping to ISR functions
..... // other peripherals' PIE re-mapping to ISR functions
EDIS;
PieCtrlRegs.PIEIER9.bit.INTx1 = 1;
..... // other peripherals' PIE IER
..... // other peripherals' PIE IER
IER |= M_INT9 | ... |... ;
//EINT;
//ERTM;
}
In this period of time w/o doing the EINT yet, there have been peripherals interrupt requests pending in the CPU stage one after another. If user doesn't enable the global interrupt (EINT), could stack be overflowed before they enable EINT and start to execute ISRs ?
Thanks and regards,
Johnny