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 ();}}