gpt4 book ai didi

exception - 同时具有相同优先级的两个外部中断(Cortex-M)?

转载 作者:行者123 更新时间:2023-12-03 07:00:31 29 4
gpt4 key购买 nike

我或多或少有关于 Cortex-M 异常(IRQ 中断)的理论问题。假设我们有两个由同一外部信号触发的外部中断 PINT0 和 PINT1。两个中断(在 NVIC 寄存器 IPR0 中)设置相同的优先级,假设为 0(默认)。 NVIC如何处理这种情况?这两个中断的NVIC向量号有影响吗?

谢谢!

最佳答案

根据您拥有的 NVIC 版本(即 Cortex M3 与 Cortex M0),存在中断优先级,可能存在子优先级,最后还有硬件优先级。

中断优先级

您所指的优先级是中断优先级。优先级高于当前上下文的中断请求(无论是非中断还是中断)都会中断该上下文。与当前上下文具有相同优先级的中断请求不会中断。在您描述的情况下,一个中断始终会首先得到服务,然后是另一个。首先维修哪一个取决于其他一些因素......

次优先级

NVIC 的某些变体具有子优先级。子优先级正是针对这种情况而存在的。您有两个中断,您不希望其中一个中断另一个,但您希望确保如果两个中断都处于待处理状态,则一个中断将在另一个中断之前得到服务。子优先级允许您指定这一点。在您的示例中,如果它们具有不同的子优先级,则将首先为具有较高子优先级(较低数字)的子优先级提供服务。如果它们相同,那么还有最后一个因素......

硬件优先级

您的帖子一语中的。如果子优先级不是一个因素,或者子优先级也相等,则NVIC中的请求编号是最后一个因素,其中较低的请求编号具有较高的硬件优先级。

在您描述的特定情况下,两者的 IPR 设置为零,这意味着两者的优先级和任何子优先级都将为零,因此硬件优先级将打破“平局”,并且较低的请求数将首先得到服务。

关于exception - 同时具有相同优先级的两个外部中断(Cortex-M)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48567316/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com