系统节拍定时器中断优先级和阻塞中断

系统节拍定时器中断优先级和阻塞中断

假设我们有一个操作系统,它运行在完全符合其要求的 CPU 上。该操作系统由滴答驱动。系统滴答中断来自外部定时器(周期模式),为简单起见,该定时器连接到某个 CPU IRQn 引脚。

IRQ 引脚按中断优先级排序。IRQ0 具有最高优先级,IRQn 具有最低优先级。优先级至少有两个原因。第一个当然是当两个中断同时到达时,会选择优先级较高的中断。第二个原因如下:发生中断时,硬件会禁用其他中断。当中断处于 ISR 启用状态(可能嵌套中断)时,只有优先级较高的中断才会发生。我对此有一些疑问。

我的第一个问题可能真的很简单,我可以自己回答(也许),但我想读到可靠的答案。

  • 如何选择定时器滴答优先级?它是系统中最低的中断优先级吗?*

这是第二个问题。

  • 如果当 CPU 正在处理另一个中断时恰好发生定时器滴答中断并且进一步的中断被禁用,该怎么办?

这是我补充的。如果发生上述情况(第二个问题),则有可能丢失系统滴答声。这会造成什么大问题吗?

*如果定时器滴答优先级不是系统中的最低中断优先级,则可能会出现这样的情况:CPU 处于优先级低于系统滴答中断的 ISR 中,并启用进一步的中断和用户进程,而我们可能需要进行调度,但该进程存储在堆栈的某个位置,我们无法在系统滴答例程中找到它。

我知道这一切都可能依赖于系统,但我对任何类似于这种情况的典型解决方案都感兴趣。

对不起我的英语不好。

相关内容