- 互斥量mutex
- tos_mutex_create
- tos_mutex_destroy
- tos_mutex_pend
- tos_mutex_pend_timed
- tos_mutex_post
互斥量mutex
tos_mutex_create
- k_err_t tos_mutex_create(k_mutex_t *mutex);
- 功能描述
创建一个互斥量。
- 参数解释
IN/OUT参数名描述[in]mutex互斥量句柄
- 返回值
K_ERR_NONE 互斥量创建成功。
K_ERR_OBJ_PTR_NULL mutex为空指针。
tos_mutex_destroy
- k_err_t tos_mutex_destroy(k_mutex_t *mutex);
- 功能描述
销毁一个互斥量。
- 参数解释
IN/OUT参数名描述[in]mutex互斥量句柄
- 返回值
K_ERR_NONE 互斥量销毁成功。
K_ERR_OBJ_PTR_NULL mutex为空指针。
K_ERR_OBJ_INVALID mutex指向的不是一个合法的互斥量。
tos_mutex_pend
- k_err_t tos_mutex_pend(k_mutex_t *mutex);
- 功能描述
尝试获取一个互斥量(永久阻塞式等待)。
- 参数解释
IN/OUT参数名描述[in]mutex互斥量句柄
- 返回值
K_ERR_NONE 获取互斥量成功。
K_ERR_MUTEX_NESTING_OVERFLOW 互斥量拥有者嵌套获取溢出。
K_ERR_MUTEX_NESTING 互斥量拥有者嵌套获取。
K_ERR_PEND_SCHED_LOCKED 此互斥量被其他任务持有,且系统调度处于锁定状态。
K_ERR_PEND_DESTROY 当前任务试图获取的互斥量被销毁(tos_mutex_destroy)了。
tos_mutex_pend_timed
- k_err_t tos_mutex_pend(k_mutex_t *mutex, k_tick_t timeout);
- 功能描述
尝试获取一个互斥量(有限时间内的阻塞等待)。
- 参数解释
IN/OUT参数名描述[in]mutex互斥量句柄[in]timeout等待超时参数
- 返回值
K_ERR_NONE 获取互斥量成功。
K_ERR_MUTEX_NESTING_OVERFLOW 互斥量拥有者嵌套获取溢出。
K_ERR_MUTEX_NESTING 互斥量拥有者嵌套获取。
K_ERR_PEND_NOWAIT 此互斥量被其他任务持有,同时timeout参数为TOS_TIME_NOWAIT(表示获取不到互斥量时立即返回)
K_ERR_PEND_SCHED_LOCKED 此互斥量被其他任务持有(获取失败),且系统调度处于锁定状态。
K_ERR_PEND_TIMEOUT 在timeout时间范围内未获取到互斥量。
K_ERR_PEND_DESTROY 当前任务试图获取的互斥量被销毁(tos_mutex_destroy)了。
tos_mutex_post
- k_err_t tos_mutex_post(k_mutex_t *mutex);
- 功能描述
释放互斥量。
- 参数解释
IN/OUT参数名描述[in]mutex互斥量句柄
- 返回值
K_ERR_NONE 互斥量释放成功。
K_ERR_MUTEX_NOT_OWNER 当前任务并非此互斥量的拥有者。
K_ERR_MUTEX_NESTING_OVERFLOW 互斥量拥有者嵌套释放溢出。
K_ERR_MUTEX_NESTING 互斥量拥有者嵌套释放。