L
LOSTISLAND
Guest
Salut à tous, Je pensais que les seules différences entre un mutex et sémaphore sont la numération (Capability Sémaphore) et l'inversion de priorité (Capability Mutex). Aujourd'hui, j'ai rencontré quelque chose d'étrange qui est peut-être liée à la capacité de l'inversion de priorité ou autre chose. Obtenir et libérer Mutex Sémaphores ou entre différentes tâches est claire, mais lorsque je les utilise en une seule tâche, leur comportement est différent. En utilisant la tâche sémaphore est verrouillé mais en utilisant Mutex la tâche n'est pas verrouillée. Imaginez il ya juste une tâche appelée APP_TestTask
Est-il quelque chose de naturel ou un bug? Merci d'avance
Code:
__task vide APP_TestTask (void) {for (; ;) {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 vide APP_TestTask (void) {for (; ;) {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 ();}}