os_event_init
所属模块:通信机制 | 类型:事件初始化函数
函数简介
os_event_init 用于初始化事件资源槽位,
在关闭中断保护下对资源结构进行安全重置。
该函数用于事件系统初始化或运行时重建资源状态。
函数原型
char os_event_init(u8 obj);
参数说明
| 参数 |
说明 |
| obj |
事件ID(0 ~ OS_RESOURCE_MAX-1) |
源码实现
/*------------------------------------------------------------------------
| FILE DESCRIPTION |
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
| - File name : event_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] obj 事件资源槽位编号。
*
* @return 操作结果。
* @retval 1 初始化成功。
* @retval -1 事件资源槽位编号无效。
*/
char os_event_init(u8 obj)//事件初始化
{
if(obj >= OS_RESOURCE_MAX)
{
return -1;
}
EA = 0;
os_res_init(&OS_RES[obj]);
EA = 1;
return 1;
}
/*------------------------------------------------------------------------
| END OF FILE: event_init.c |
------------------------------------------------------------------------*/
使用示例
void system_init()
{
os_event_init(2);
}
注意事项
初始化过程中关闭中断(EA=0)以避免资源竞争,
初始化完成后必须恢复中断状态。