L
LOSTISLAND
Guest
Hola a tots, em va semblar que les úniques diferències entre un mutex i un semàfor és el recompte (Capacitat de Semaphore) i la inversió de prioritats (Capacitat de mutex). Avui m'he trobat una cosa estranya que potser es relaciona amb la capacitat d'inversió de prioritat o alguna cosa més. Obtenir i alliberar mutex o semàfors entre les diferents tasques és clar, però quan els ús en una sola tasca, el seu comportament és diferent. L'ús de semàfors de la tasca està bloquejada però usant mutex la tasca no està bloquejat. Imagina que no és només una tasca anomenada APP_TestTask
És una cosa natural o un error? Gràcies per endavant
Code:
__ tasques APP_TestTask buit (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 APP_TestTask buit (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 ();}}