os_msgq_clear

所属模块:通信机制 | 类型:消息队列清空函数

API Metadata

函数ID:os_msgq_clear
模块:msgq
类型:message queue clear
嵌套深度:1

函数简介

os_msgq_clear 用于清空消息队列的运行状态, 重置队列读写指针与计数器。

该函数不会清除底层缓冲区数据,仅重置逻辑状态, 用于快速恢复队列初始状态。

函数原型

void os_msgq_clear(os_msgq_t *q);

参数说明

参数 说明
q 消息队列控制块指针

返回值

无返回值(void函数),仅重置队列状态。

源码实现

#include "hrtos_internal.h" /** * @brief 清空消息队列 * @note 仅重置队列状态,不清除缓冲区数据 */ void os_msgq_clear(os_msgq_t *q) { EA = 0; q->head = 0; // 重置写指针 q->tail = 0; // 重置读指针 q->count = 0; // 清空消息计数 EA = 1; }

使用示例

void reset_task() { os_msgq_clear(&my_queue); }

注意事项

该函数仅清除逻辑状态,不会擦除 buffer 内容。 在多任务环境下调用时已通过关中断保证原子性。

相关推荐