os_mutex_init
所属模块:同步机制 | 类型:互斥锁初始化函数
函数简介
os_mutex_init 用于初始化互斥锁资源,
清空所有权并重置等待队列,使互斥锁恢复到可用状态。
该函数用于构建互斥锁的基础状态,是任务同步机制的重要初始化入口。
函数原型
char os_mutex_init(char mid);
参数说明
| 参数 |
说明 |
| mid |
互斥锁资源ID(0 ~ OS_RESOURCE_MAX-1) |
源码实现
#include "hrtos_internal.h"
/* =========================================================
* 互斥锁初始化
*/
char os_mutex_init(char mid)
{
OS_RESOURCE *m;
if (mid < 0 || mid >= OS_RESOURCE_MAX)
{
return -1;
}
m = &OS_RES[mid];
/* -------------------------
* 初始化互斥锁状态
* ------------------------- */
m->value = 1; /* 1 = 可用 */
m->owner = OS_INVALID_ID; /* 无拥有者 */
m->wait_mask = 0; /* 清空等待队列 */
m->wait_cnt = 0; /* 等待计数清零 */
return 1;
}
使用示例
void system_init()
{
os_mutex_init(0);
}
注意事项
互斥锁初始状态为可用(value = 1),
用于保证临界资源的独占访问。