os_res_init

所属模块:内核基础 | 类型:资源初始化函数

API Metadata

函数ID:os_res_init
模块:kernel resource
类型:resource init
嵌套深度:1

函数简介

os_res_init 用于初始化统一资源对象(OS_RESOURCE), 清空资源计数、所有权信息以及等待队列状态。

该函数是 HRTOS 统一资源模型的基础构造函数, 所有 semaphore、mutex、event、mailbox 等机制均依赖该结构。

函数原型

void os_res_init(OS_RESOURCE *r);

参数说明

参数 说明
r 资源对象指针(OS_RESOURCE *)

返回值

无返回值(void函数)

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : res_init.c | - Author : 谭舒 | - Update date : 2026-09-19 | - Copyright(C) : 2026 HRTOS. All rights reserved. ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | INCLUDES | ------------------------------------------------------------------------*/ #include "hrtos_internal.h" /*------------------------------------------------------------------------ | API FUNCTIONS | ------------------------------------------------------------------------*/ /** * @brief 初始化指定的系统资源。 * * @param[in] r 系统资源控制块指针。 * * @return None。 * * @note 初始化资源计数、资源拥有者及等待状态, * 使指定资源恢复到初始状态。 */ void os_res_init(OS_RESOURCE *r) // 初始化 { /* 资源初始值 */ r->value = 0; /* 当前无拥有者 */ r->owner = OS_INVALID_ID; /* 等待任务数量清零 */ r->wait_cnt = 0; r->wait_mask = 0; } /*------------------------------------------------------------------------ | END OF FILE: res_init.c | ------------------------------------------------------------------------*/

使用示例

void init_system() { OS_RESOURCE res; os_res_init(&res); }

注意事项

该函数为所有 IPC 机制的底层基础, 必须在系统初始化阶段或单任务环境中调用。

相关推荐