完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我定义了一个信号量集: OS_FLAG_GRP *FlagTest1; INT8U Flag_Error
在任务初始化之前,创建:FlagTest1=OSFlagCreate((OS_FLAGS)0,&Flag_Error); 任务中很简单: static void AppTask3 (void *p_arg) { (void)p_arg; while(1) { OSFlagPend(FlagTest1,(OS_FLAGS)3,OS_FLAG_WAIT_SET_ALL+OS_FLAG_CONSUME,0,&Flag_Error); printf("TASK3 is ok!n"); } } 在其它的任务中,向信号量集发信号。 我的问题是: 当程序复位第一次运行的时候,任务三中的信号量请求第一次运行的时候,能执行一次,之后的,就是按照我发送的信号量来正确执行了。我搞不清楚是什么原因导致的,第一次信号量请求会被执行过去,给它发送信号的任务优先级低于任务三。 在请求信号量的前面,我加了一个OSFlagQuery函数检测到的数值也确实是0,但是请求语句确实被执行了。不知道什么原因。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
UCOSII中断中添加OSSemPost(Sem);程序无法运行
5007 浏览 1 评论
在BC5.0上编译uC/OS-II出现"eeror writing object file",怎样处理???
3221 浏览 1 评论
596浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 04:10 , Processed in 0.478655 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号