L
LOSTISLAND
Guest
Привет всем, я думал, что только различия между мьютекс и семафор являются кол-во (Semaphore Capability) и инверсии приоритетов (Mutex Capability). Сегодня я столкнулся что-то странное которая может быть связана с возможностью инверсии приоритетов или что-то еще. Получение и освобождение мьютекса или семафоры между различными задачами ясно, но когда я использую их только в одной задачей, их поведение отличается. Использование семафоров задачи заблокирован, но с использованием Mutex задача не заперта. Представьте себе, есть только одна задача называется APP_TestTask
Это нечто естественное или ошибку? Спасибо передовых
Code:
__task APP_TestTask недействительным (недействительными) {для (; ;) {os_dly_wait (20); os_sem_wait (Sem_Test, 0xffff); os_sem_send (Sem_Test); os_sem_wait (Sem_Test, 0xffff); os_sem_wait ( Sem_Test, 0xffff); Test_Function ();}}
Code:
_Task APP_TestTask недействительным (недействительными) {для (; ;) {os_dly_wait (20); os_mut_wait (Mut_Test, 0xffff); os_mut_release (Mut_Test); os_mut_wait ( Mut_Test, 0xffff); os_mut_wait (Mut_Test, 0xffff); Test_Function ();}}