完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现在有一个线程用队列来获取别的线程送过来的数据并进行处理,数据传递用消息队列,这样也能起到一个buffer 的作用。数据量不大,也就20个字节的样子,定了一个队列元素结构如下
struct { uint32_t length; uint8_t data[16]; }qDataType; 在接收线程中, xQueueReceive(HostUpStreamHandle,&qOut,osWaitForever); 发送线程中,发送函数这样定义,另一个线程也一样 void Send1() { qDataType d1; for(;;) { /*d1赋值代码,省略*/ xQueueSend(HostUpStreamHandle,&qIn2,osWaitForever); } } 因为FreeRTOS不是用COPY的方式传递数据吗?我在发送线程里把整个数据,而不是指针,送到队列。这样虽然占内存或需要复制时间,但是对于我这个小型应用来说,可以接收。 但是发现队列取出的数据不对,是什么原因? 如何用消息队列传传结构体实体,而不是指针? |
|
相关推荐
1个回答
|
|
会用联体合的人.C语言掌握得基本差不多了.
|
|
|
|
只有小组成员才能发言,加入小组>>
683 浏览 1 评论
2117 浏览 5 评论
2428 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2194 浏览 6 评论
2163 浏览 7 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
307浏览 9评论
295浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
431浏览 6评论
295浏览 5评论
344浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-23 14:58 , Processed in 1.638005 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号