os_msgq_init
所属模块:通信机制 | 类型:消息队列初始化函数
函数简介
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);
}
注意事项
初始化仅建立结构关系,不涉及任务调度或数据同步。
使用前必须保证缓冲区有效。