NXP MCU 技术论坛
直播中

刘静

7年用户 1278经验值
私信 关注
[问答]

求助,需要LWMSGQueue说明

我对轻量级消息队列的使用感到困惑,有 MQX 经验的人应该很容易解决这个问题。我可以在 MQX 中包含的示例代码中看到数组声明为:
#define NUM_MESSAGES  3
#define MSG_SIZE      1

uint32_t server_queue[sizeof(LWMSGQ_STRUCT)/sizeof(uint32_t) + NUM_MESSAGES * MSG_SIZE];
那就是被初始化为:
_lwmsgq_init((void *)server_queue, NUM_MESSAGES, MSG_SIZE);
所以,我的问题很简单,如果我有以下结构,我应该如何声明我的队列数组并初始化队列:
typedef struct my_struct
{
    uint32_t a;
    uint8_t b;
    char *c[32]
    uint32_t *d;
} my_struct_t;
我问是因为这个例子使用了uint32_t这不是很有帮助。它使用 uint32_t 的事实导致混淆更改什么以使示例适应我的需要。例如,我应该将我的数组声明为:
my_struct_t server_queue[sizeof(LWMSGQ_STRUCT)/sizeof(my_struct_t) + NUM_MESSAGES * MSG_SIZE];
那么初始化呢?似乎没有什么可以改变的,因为它不包括数据类型。无论用于队列的数据类型如何,它真的是完全相同的初始化吗?这听起来不对。

更多回帖

发帖
×
20
完善资料,
赚取积分