L
LOSTISLAND
Guest
Hei kaikki, ajattelin vain erot Mutex ja semafori ovat count (Semaphore Capability) ja ensisijaisten inversio (Mutex Capability). Tänään olen kohdannut jotain outoa, joka ehkä liittyy prioriteetti inversio valmiuksia tai jotain muuta. Getting ja vapauttamalla Mutex tai semaforit eri tehtävissä on selvä, mutta kun käytän niitä vain yksi tehtävä, niiden toiminta on erilainen. Käyttämällä opastin tehtävä on lukittu, mutta käyttäen Mutex tehtävä ei ole lukittu. Kuvittele että on vain yksi tehtävä, jota kutsutaan APP_TestTask [KOODI] __task void 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] [KOODI] _task void 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 ();}} [/CODE] Onko se jotain luonnollista vai bugi? Kiitos etukäteen