我知道有很多关于互斥体实现的文章,但我找不到解决问题的方法。
我正在研究从RTOS运行的一个核心多任务系统。
Task_1()//优先级较低的抢先任务
Task_2()//更高优先级的任务
我正在尝试使用互斥锁来锁定Uart通信端口,但是我遇到了以下问题:
Task_1锁定互斥锁并开始通过Uart端口发送消息。 同时,它被优先级较高的Task_2抢占(中断),也试图通过UART发送数据。 但是,由于持有互斥锁的任务被中断而无法解锁,因此Task_2无法锁定互斥锁。这会阻止任务运行。
是否有任何好的解决方案可以避免或解决这种情况? 目标也不是破坏Task_1发送的Uart数据。