完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
ucosII的消息队列传递的是指针,那么这个需要传递的指针是不是必须是全局变量或是malloc分配后的指针?
如果一个指针ptr的内容是1,用OSQPost()发送之后,在OSQPend接收之前,指针ptr的内容变为0,那么最后OSQPend接收到底指针内容也是0吧? |
|
相关推荐
7个回答
|
|
|
问题是不管你发送的是什么,这些是应用处理的,你应该管理好你的代码,系统本身肯定不会在中间修改你的东西。如果修改了,肯定是你的代码哪里还继续修改了指针的内容,你应该问你自己为啥这样写代码。就像在windows上实现一个异步串口发送数据一样,当你send后数据已经被内部new出来的新buf存放,并发送到写线程,你哪里有机会修改里面的内容啊?
|
|
|
|
|
|
发送的东西难道还有人会去改吗?
|
|
|
|
|
|
|
|
|
|
|
|
路过学习
|
|
|
|
|
|
发送的是指针首地址,发送完以后,他还是从你发送的地址去读/写,但是你如果这个内存释放,或者给其他程序用,就有可能有问题了。
|
|
|
|
|
|
谢谢各位的关注!我程序中有个扫描任务,需要将扫描结果传递给其他任务,每次的扫描结果都是输出到同一个buf上的,而这个扫描任务有可能会在某段时间内多次Post。如果仅仅只是传递这个buf的指针,这个消息会被后来的扫描结果覆盖掉,也就是说收到的多个消息都是一样的。
|
|
|
|
|
|
使用内存池,然后从内存池里面申请一段内存存放你的扫描信息,然后发送,处理任务接收到消息,处理完释放内存。如果你用扫描信息长度是固定的,可以用os自带的内存管理函数。不然用开发板推荐的吧。我上面给你举串口的例子都说了,你都没看懂
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1021浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:07 , Processed in 1.019770 second(s), Total 56, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1789