尊敬的 Champ:
我要求为我的客户提供服务。
它们已经初始化外设阶段和 PIE 阶段(初始化 PIE 矢量表、重新映射到 ISR 函数)并执行 Interrupt_enable (INT_x)以正确传播中断请求、而是特意执行它、而不在 PIE 初始化之后执行全局中断(EINT)、 并针对一些背景内容将其保持一段时间、然后最终启用全局中断(EINT)。
该伪代码如下所示、
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;
}
在这段 没有执行 EINT 的时间 内、已经有外设中断请求一个接一个地在 CPU 阶段等待。 如果用户未启用 全局中断(EINT),在启用 EINT 并开始执行 ISR 之前堆栈是否会溢出?
谢谢。此致、
约翰尼