在互斥任务运行期间是否可能发生 ISR,实际上我想知道的是互斥任务或 ISR 是否具有更高的优先级?
问问题
162 次
这完全取决于操作系统和互斥锁的实现。典型的互斥 API 包含一个trylock()
. 有一些版本trylock()
可用于中断服务程序 (ISR)。但是,作为 ISR 服务硬件,它们必须始终执行。没有办法用互斥锁阻止执行。相反,可以关闭硬件,因此没有中断或可以屏蔽中断。屏蔽中断是有利的,因为它会增加中断延迟;即,您可能会导致硬件问题。
一般用户任务阻止所有系统中断是一个非常糟糕的主意。如果这是您希望的,那么您的设计可能存在问题。