os_mutex_init

所属模块:同步机制 | 类型:互斥锁初始化函数

API Metadata

函数ID:os_mutex_init
模块:mutex
类型:mutex init
嵌套深度:1

函数简介

os_mutex_init 用于初始化互斥锁资源, 清空所有权并重置等待队列,使互斥锁恢复到可用状态。

该函数用于构建互斥锁的基础状态,是任务同步机制的重要初始化入口。

函数原型

char os_mutex_init(char mid);

参数说明

参数 说明
mid 互斥锁资源ID(0 ~ OS_RESOURCE_MAX-1)

返回值

1 - 初始化成功
-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), 用于保证临界资源的独占访问。

相关推荐