物联网开发——TencentOS Tiny 内核基础组件(消息队列)

本文介绍了物联网开发中TencentOS Tiny的内核基础组件——消息队列。消息队列提供了同步的消息传递/接收机制,TOS_QUEUE在消息队列基础上封装了异步机制。内容包括消息队列的概述、API讲解及编程实例,展示了如何配置消息队列池大小,并通过示例代码展示FIFO和LIFO两种模式下消息的放入和接收过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

消息队列

概述

消息队列提供了一种同步的传递/收取消息的机制,与队列(tos_queue)不同的是,tos_queue基于消息队列封装了一层异步的机制,实际上tos_queue的底层消息管理采用的就是消息队列。

API讲解

编程实例

1、在tos_config.h中,配置消息队列组件开关TOS_CFG_MSG_EN:

#define TOS_CFG_MSG_EN 1u

2、在tos_config.h中,配置消息队列池大小TOS_CFG_MSG_POOL_SIZE:

#define TOS_CFG_MSG_POOL_SIZE 3u

这是消息队列池中可以承载的最大消息数量

3、编写main.c示例代码:

#include "tos.h"
#include "mcu_init.h"

#define STK_SIZE_TASK_DEMO      512 

#define PRIO_TASK_DEMO          4
 
k_stack_t stack_task_demo[STK_SIZE_TASK_DEMO]; 

k_task_t task_demo;

k_msg_queue_t msg_queue;

struct msg_st {
    char *msg;
    size_t size;
} msgs[TOS_CFG_MSG_POOL_SIZE] = {
    { "msg 0", 6 },
    { "msg 1", 6 },
    { "msg 2", 6 },
};

struct msg_st dummy_msg = { "dummy msg", 10 };

extern void entry_task_demo(void *arg);  

vo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值