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