硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2877|回复: 5
收起左侧

[FreeRTOS] Queue的机制的疑问

[复制链接]

38

主题

82

回帖

196

积分

初级会员

积分
196
发表于 2018-3-27 16:25:44 | 显示全部楼层 |阅读模式
OS定死了队列每个元素的长度,每次都是直接复制等长的数据进去。我觉得好傻,为什么不用普通的FIFO,进几个byte就出几个byte嘛,搞得我还要专门弄个结构体说明我发的数据实际大小是多少(我每一帧不固定长度)。。。为什么定死长度呢?



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2018-3-28 01:30:45 | 显示全部楼层
不定长的话,推荐传递数据地址。
回复

使用道具 举报

38

主题

82

回帖

196

积分

初级会员

积分
196
 楼主| 发表于 2018-3-28 09:06:57 | 显示全部楼层
eric2013 发表于 2018-3-28 01:30
不定长的话,推荐传递数据地址。

1. 但就需要一个全局的buff以免内存被篡改。
2. 而且传地址也需要告诉另一边要取的长度吧
回复

使用道具 举报

0

主题

7

回帖

148

积分

初级会员

积分
148
发表于 2018-3-28 09:19:27 | 显示全部楼层
yip_1991 发表于 2018-3-28 09:06
1. 但就需要一个全局的buff以免内存被篡改。
2. 而且传地址也需要告诉另一边要取的长度吧

你可以传结构体指针,那样就可以解决了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2018-3-28 11:42:05 | 显示全部楼层
yip_1991 发表于 2018-3-28 09:06
1. 但就需要一个全局的buff以免内存被篡改。
2. 而且传地址也需要告诉另一边要取的长度吧

1. 得使用FreeRTOS的动态内存管理API,发送前申请,用完释放。
2. 是的。将你传递的数据设置重结构体,一个成员是长度,一个是数据。
回复

使用道具 举报

38

主题

82

回帖

196

积分

初级会员

积分
196
 楼主| 发表于 2018-3-28 13:55:09 | 显示全部楼层
eric2013 发表于 2018-3-28 11:42
1. 得使用FreeRTOS的动态内存管理API,发送前申请,用完释放。
2. 是的。将你传递的数据设置重结构体, ...

1. 这个可以有,虽然慢点,但不是经常做。
2. 所以觉得这个机制怪怪的~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 03:49 , Processed in 0.228877 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表