os_mailbox_init
所属模块:通信机制 | 类型:邮箱初始化函数
函数简介
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);
}
注意事项
邮箱初始化不会自动加锁或关闭中断,
建议在系统初始化阶段统一调用,避免运行期竞争。