OpenEdv-开源电子网
标题:
咨询freerrtos的消息队列问题
[打印本页]
作者:
sougasouga33
时间:
2025-4-2 19:06
标题:
咨询freerrtos的消息队列问题
#define QUEUE_LEN 256
#define QUEUE_SIZE 8
使用xQueueCreate消息队列传输结构体变量,如下
typedef struct
{
void* p_cmd;
void* p_data;
}scheduler_args_t;
typedef struct
{
int32_t supplyProtectVolume;
int32_t supplyMinVolume;
}self_check_param_t;
char test1[]={"shejishifu"};
self_check_param_t *p1, param_s;
scheduler_args_t args_s;
param_s.supplyProtectVolume = 33555;
param_s.supplyMinVolume = 22333;
args_s.p_cmd = test1;
args_s.p_data = ¶m_s;
复制代码
传输
args_s消息变量,
如果把QUEUE_SIZE 设置为4时候,系统会崩溃,这是为什么?
作者:
A571157242
时间:
2025-4-2 19:06
QUEUE_SIZE 设置成8应该就没问题了吧。args_s变量是scheduler_args_t类型的,这个类型的结构体是两个指针变量,1个指针变量4个字节,两个指针变量8个字节。也就是说,8个字节的数据,你的队列项大小才4字节,不够。
作者:
正点原子
时间:
2025-4-6 20:35
帮顶
作者:
zdes33ss
时间:
2025-4-9 14:58
A571157242 发表于 2025-4-9 09:29
QUEUE_SIZE 设置成8应该就没问题了吧。args_s变量是scheduler_args_t类型的,这个类型的结构体是两个指针 ...
正解,这个东西应该使用sizeof最好,不要自己去算,有时候没注意对齐会出问题
欢迎光临 OpenEdv-开源电子网 (https://www.openedv.com/)
Powered by Discuz! X3.4