完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.OSQPend的返回值是个指针,那这个指针指向哪?
2.如果OSQPend返回的指针指向的是OSQPost传入的指针,那这个指针是不是就不能用局部变量了? 3.如果OSQPend返回的指针指向的是OSQPost传入的指针,那如果我一次传入多个字节(比如一个数组a[8]),那在OSQPend里我该如何调回? 4.OSQPost(&CAN1Q,&c,1,OS_OPT_POST_FIFO,&err); OSQPost(&Usart1Q,&c,1,OS_OPT_POST_FIFO,&err); 这样同时将同一个变量传入是不是有问题? 5.消息队列做中断服务和任务的通信是否合适? |
|
相关推荐
9个回答
|
|
1、返回的指针就是你消息的位置。
2、是的,消息指针不能用局部变量。 3、把你要传递的数据写到一个数组里面,数组要是全局变量,或者你可以使用内存管理申请一段内存来存放要传递的数据,然后将这个数组的首地址通过OSQPost()来发送,你调用OSQPend()请求到的就是这个数组的首地址。 4、用法上来讲没有任何问题,但是不建议这么用。 5、消息队列就是为了任务与任务,中断服务函数与任务之间通信做的,你觉得合适吗?!不过在中断服务函数中只能Post,不能Pend。任务就无所谓了 |
|
|
|
按照我的理解我写了个程序,实现将收到的CAN数据发回去,但是回来的数据不对,不知道是哪里的问题,能不能帮我看一下:
代码: 发送任务函数 static void AppTaskCAN(void *p_arg) { OS_ERR err; CPU_SR_ALLOC(); u8 *qout,i; u8 *data; OS_MSG_SIZE size; (void)p_arg; qout=malloc(100); data=malloc(100); while(1) { qout=OSQPend(&CAN1Q,0,OS_OPT_PEND_BLOCKING,&size,NULL,&err); i=*qout; printf("TaskCan:%xrn",i); memcpy(data,qout,size); CAN1_Send(data,size); } } 中断服务函数: void CAN1_RX0_IRQHandler(void) {int i; OS_ERR err; CanRxMsg RxMessage; OSIntEnter(); CAN_Receive(CAN1,CAN_FIFO0,&RxMessage); for(i=0;i Can1RxData=RxMessage.Data; } printf("directly out:%x",Can1RxData[0]); OSQPost(&CAN1Q,&Can1RxData,RxMessage.DLC,OS_OPT_POST_FIFO,&err); CAN_ClearITPendingBit(CAN1,CAN_IT_FMP0); OSIntExit(); } 要传递的数据变量是CAN1RxData,是个u8的指针,在开始任务里我也给他分配空间了,发回来的数据字节数倒是对的,但数据不对,而且没有变化,一直是固定的几个数> |
|
|
|
楼主 最后登录时间1970-1-1 楼主穿越了
|
|
|
|
这尼玛简直就是惊天bug
|
|
|
|
有没有声明外部消息队列的说法,就是在某个.C文件声明的消息队列,在别的.C文件里面可以调用不?
|
|
|
|
外部声明您这里有解决么?可否告知一下
|
|
|
|
ucosiii的消息队列是用来传递 地址的,有两点不同意你的观点,用一个数组的话,如果能够执行一个POST 然后一个pend 的话那是没有问题的,而如果要是多个post 的话,最终消息队列满了的话,所有消息队列的消息都和最后一条消息一样,因为每次保存的地址都是 那个全局数组的地址 ,POST可以发送局部变量,你们用mymalloc的例程不也是这样操作的吗
|
|
|
|
虽然是老帖,不过解决了困扰我一天的疑问,赞
|
|
|
|
之前也被搞混过。ucos的消息队列不会进行数据拷贝,只是发送指针过来。而freeRTOS则会原原本本地拷贝消息本身。个人觉得freeRTOS的消息队列才是真正的队列。
|
|
|
|
只有小组成员才能发言,加入小组>>
720 浏览 0 评论
1122 浏览 1 评论
2501 浏览 5 评论
2840 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2683 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
664浏览 9评论
679浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
792浏览 6评论
640浏览 5评论
681浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 10:05 , Processed in 1.236839 second(s), Total 97, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号