使用RT-thread,中斷結(jié)構(gòu)如下:
void app_timer_isr(void)
{
? ? GET_INT_SP();
? ? /* enter interrupt */
? ? rt_interrupt_enter();
? ? APP_TIM->INTFR = 0;
? ? NVIC_SetPendingIRQ(TIM7_IRQn);
? ? /* leave interrupt */
? ? rt_interrupt_leave();
? ? FREE_INT_SP();
}
兩個中斷優(yōu)先級分別為6和3。
當(dāng)中斷6被優(yōu)先級3搶占時,堆棧指針變化如下:
高優(yōu)先級的ISR3 堆棧指針和APP的SP相同,這正常嗎,會不會造成系統(tǒng)運行錯誤?