|
|
1
0
在中断中使用互斥锁通常不是一个好主意。首先,如果中断正在运行,那么它不能被任务中断,因此只需要单向保护。第二,如果中断无法获得互斥锁,那么它就无法阻止等待它,因此它必须退出而不访问资源。 如果中断需要做一些冗长的事情,请考虑将中断处理延迟到一个任务,或者使用 direct to task notification ,或使用 centralised deferred interrupt processing 特色 如果在中断中只需要使用信号量,则使用二进制信号量,而不是互斥量,因为互斥量具有优先级继承机制,在中断中几乎没有逻辑意义(优先级继承是指任务继承彼此的任务优先级,但中断不是任务,因此没有任务优先级)。 |