os_mailbox_init

所属模块:通信机制 | 类型:邮箱初始化函数

API Metadata

函数ID:os_mailbox_init
模块:mailbox
类型:mailbox init
嵌套深度:1

函数简介

os_mailbox_init 用于初始化邮箱资源结构, 清空邮箱内容并重置等待队列状态。

该函数构建邮箱通信的基础结构,是邮箱机制的起始初始化接口。

函数原型

void os_mailbox_init(u8 mid);

参数说明

参数 说明
mid 邮箱ID(0 ~ OS_RESOURCE_MAX-1)

返回值

无返回值(void函数),初始化失败仅通过参数范围判断避免执行。

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : mailbox_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] mid 邮箱资源槽位编号。 * * @return None。 * * @note 初始化指定邮箱的存储状态及等待结构。 * 邮箱初始化后处于空状态,不使用资源所有者机制。 */ void os_mailbox_init(u8 mid) { OS_RESOURCE *m; /* 参数检查 */ if (mid >= OS_RESOURCE_MAX) { return ; } m = &OS_RES[mid]; m->value = 0; /* 邮箱初始为空 */ m->owner = OS_INVALID_ID; /* 不使用所有者概念 */ m->wait_mask = 0; /* 清空等待队列 */ m->wait_cnt = 0; } /*------------------------------------------------------------------------ | END OF FILE: mailbox_init.c | ------------------------------------------------------------------------*/

使用示例

void system_init() { os_mailbox_init(0); }

注意事项

邮箱初始化不会自动加锁或关闭中断, 建议在系统初始化阶段统一调用,避免运行期竞争。

相关推荐