冗余IRQ明确待定操作

时间:2018-06-12 09:44:21

标签: c arm interrupt interrupt-handling cortex-m

我正在使用ARM Cortex-M0处理器开展项目。在这个项目中,我需要提供定时器支持(CMSDK (SSE-200)计时器)。

因此,在向量表中,在由TIMER0_IRQn表示的正确条目中,我们放置了处理程序timer0_irq_handler,其中包含以下代码:

void timer0_irq_handler(void)
{
    NVIC_ClearPendingIRQ(TIMER0_IRQn)
    my_timer_irq_handler(TIMER0)
}

我的问题是,是否需要拨打NVIC_ClearPendingIRQ,因为来自Cortex-M0 Devices Generic User Guide

  

待处理中断保持挂起状态,直到满足以下条件之一:

     

处理器进入中断的ISR。这改变了状态   从挂起到活动的中断

据我所知,这意味着当我们进入ISR时,中断暂挂状态会自动清除,并且可能对NVIC_ClearPendingIRQ的调用是多余的。是吗?

1 个答案:

答案 0 :(得分:0)

自动清除。
您可以使用NVIC_GetPendingIRQ()检查它是否处于待处理状态。

相关问题