Zephyr Project RTOS Tutorial (5) 教學 : Kernel API – Semaphores and Mutexes Test

文章作者: 盧宜良

1.Semaphores 信號,一個 Thread 給信號 (k_sem_give),另一個 Thread 就會得到信號 k_sem_take。

重點函數:

K_SEM_DEFINE(my_sem, 0, 1); // 初始化 my_sem

k_sem_give(&my_sem); // 給信號

k_sem_take(&my_sem, K_MSEC(50); // 嘗試take信號,直到 50 msec 。

 

2.Mutexes  互斥鎖,一個 Thread lock 時 (k_mutex_lock),另一個 Thread 就不能 lock,直到被 unlock (k_mutex_unlock)。

K_MUTEX_DEFINE(my_mutex); //初始化 my_mutex

k_mutex_lock(&my_mutex, K_FOREVER) // 嘗試鎖,直到K_FOREVER
k_mutex_unlock(&my_mutex); // 解鎖

 

未經允許不得轉載:GoMCU » Zephyr Project RTOS Tutorial (5) 教學 : Kernel API – Semaphores and Mutexes Test