os_msgq_init

所属模块:通信机制 | 类型:消息队列初始化函数

API Metadata

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

函数简介

os_msgq_init 用于初始化消息队列控制块, 绑定环形缓冲区并重置队列状态。

该函数构建消息队列的基础结构,是消息通信机制的起始入口。

函数原型

void os_msgq_init(os_msgq_t *q, u8 *buf, u8 _size);

参数说明

参数 说明
q 消息队列控制块指针
buf 环形缓冲区首地址
_size 队列最大容量

返回值

无返回值(void函数),仅完成结构初始化,不涉及调度或状态反馈。

源码实现

#include "hrtos_internal.h" /** * @brief 消息队列初始化 */ void os_msgq_init(os_msgq_t *q, u8 *buf, u8 _size) { q->buf = buf; // 关联消息缓冲区 q->_size = _size; // 设置队列容量 q->head = 0; // 读指针 q->tail = 0; // 写指针 q->count = 0; // 当前消息数量 }

使用示例

os_msgq_t q; u8 buffer[16]; void system_init() { os_msgq_init(&q, buffer, 16); }

注意事项

初始化仅建立结构关系,不涉及任务调度或数据同步。 使用前必须保证缓冲区有效。

相关推荐