L
LOSTISLAND
Guest
Hi semua, saya pikir satu-satunya perbedaan antara mutex dan semaphore adalah count (Kemampuan Semaphore) dan inversi prioritas (Mutex Kemampuan). Hari ini, saya temui sesuatu yang aneh yang mungkin berhubungan dengan kemampuan inversi prioritas atau sesuatu yang lain. Mendapatkan dan melepaskan mutex atau Semaphore antara tugas yang berbeda jelas tetapi ketika saya menggunakannya hanya dalam satu tugas, perilaku mereka berbeda. Menggunakan semaphore tugas terkunci tetapi menggunakan Mutex tugas tidak terkunci. Bayangkan hanya ada satu tugas yang disebut APP_TestTask [KODE] __task batal 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] [KODE] _task batal 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] Apakah itu sesuatu yang alami atau bug? Terima kasih dalam lanjutan