今天想到了一个问题:假如STM32的某个中断被掩蔽(通过BASEPRI寄存器),被掩蔽期间如果该中断两次(或多次)触发,等解除掩蔽之后该中断的ISR(中断服务程序)会执行几次呢?会不会累计?
然后我用定时器中断测试了一下,结果显示该定时器中断的ISR并不会多次执行,只执行了一次。
原因:某个中断被掩蔽期间如果触发了该中断那么这个中断会被悬起(通过SETPEND寄存器自动悬起),但是只是标记了悬起的状态,并不会记录悬起的次数。
以上结论是在Cortex-M3上测试得出的。
(个人观点如有错误、不当之处欢迎指正)