os_mq.h 函数
2026/4/26小于 1 分钟函数声明同步机制API
os_mq.h 函数
📚 本节导读
用途: 消息队列 API 函数声明
来源: kernel/include/os_mq.h:88
一、消息队列创建
os_mq_create
os_mq_id os_mq_create(const char *name,
os_size_t max_msg_size,
os_uint16_t max_msgs);功能: 创建消息队列
参数:
- name: 队列名称
- max_msg_size: 单条消息最大大小
- max_msgs: 最大消息数量
os_mq_delete
os_err_t os_mq_delete(os_mq_id mq);功能: 删除消息队列
二、消息队列操作
os_mq_send
os_err_t os_mq_send(os_mq_id mq, void *buffer, os_size_t size,
os_int32_t timeout);功能: 发送消息
os_mq_recv
os_err_t os_mq_recv(os_mq_id mq, void *buffer, os_size_t size,
os_int32_t timeout, os_size_t *recv_len);功能: 接收消息
os_mq_flush
os_err_t os_mq_flush(os_mq_id mq);功能: 清空所有消息
三、静态消息队列管理
OS_MQ_DEFINE
#define OS_MQ_DEFINE(name, max_msg_size, max_msgs) \
struct { \
os_mq_dummy_t obj; \
void *msg_pool_align_ptr; \
os_mq_msg_dummy_t msg_pool[(max_msgs)]; \
os_uint8_t msg_pool_buffer[(max_msgs) * \
(OS_ALIGN_UP((max_msg_size), sizeof(os_ubase_t)) + \
sizeof(os_mq_msg_dummy_t))]; \
} _mq_obj_##name功能: 静态定义消息队列
os_mq_init
os_err_t os_mq_init(os_mq_id mq, const char *name, void *msg_pool,
os_size_t msg_pool_size, os_size_t max_msg_size,
os_uint16_t max_msgs);功能: 初始化静态消息队列
os_mq_deinit
os_err_t os_mq_deinit(os_mq_id mq);功能: 反初始化静态消息队列