优先级反转的隐蔽触发场景常出现在互斥锁与ISR交互中:当低优先级任务持有互斥锁时,若该任务被高优先级任务抢占,而高优先级任务又试图获取同一互斥锁,系统会临时提升低优先级任务优先级(优先级继承)。但若ISR在此时介入,且ISR内调用非中断安全的互斥锁API(如xSemaphoreTakeFromISR),会导致锁状态被破坏或延迟释放,引发反转。实操建议:1) ISR中严禁使用阻塞型互斥锁,改用信号量或直接置标志;2) 确保互斥锁的获取/释放均在任务上下文,且使用带超时的API;3) 对临界区保护采用中断屏蔽(如taskENTER_CRITICAL)而非互斥锁,避免ISR与任务竞争。
mcuku 阿沐 · 2026-08-27