打印
[应用相关]

ucosiii任务切换问题

[复制链接]
3452|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pttptt85|  楼主 | 2014-8-25 15:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在一个任务中加入了一个循环如:j = 0;while(j < 1000)j++;
结果任务在此发生了切换,执行了其他任务后返回,我本想不要切换.不知道是什么原因.谢谢
沙发
Eric2013| | 2014-8-25 16:30 | 只看该作者
任务执行权被抢占了,如果不想被抢占,加上调度锁

使用特权

评论回复
板凳
pttptt85|  楼主 | 2014-8-25 16:51 | 只看该作者
我加过调度锁是可行的,但我没想明白难道在一个任务中随时都有可能被高级的抢占吗?我一直认为是在延时中进行切换,谁的优先权高就先执行谁.难道不是这样的吗?如果如此,那不是在低优先级的任务就可能出乱.有没有设置像我说的这样执行呢?谢谢

使用特权

评论回复
地板
pttptt85|  楼主 | 2014-8-25 16:53 | 只看该作者
上面说的任务是就绪的任务

使用特权

评论回复
5
Eric2013| | 2014-8-25 16:54 | 只看该作者
这个就是所谓的抢占式调度。

使用特权

评论回复
6
Rain_King| | 2014-8-25 19:51 | 只看该作者
你还没有懂任务的工作原理,可以去看一下调度系统的原理就知道为啥了............

使用特权

评论回复
7
李富贵| | 2014-8-25 23:03 | 只看该作者
ucosii撸主的循环如果是在高优先级任务里面,那么低优先级任务即使就绪也无法被执行。可能ucosiii改了这个问题,没用过。

使用特权

评论回复
8
江枫渔火| | 2014-8-26 12:19 | 只看该作者
有高优先级的任务时,随时都会切换过去。如果你的操作是不应该被打断的,应该加以保护。

使用特权

评论回复
9
ticomi| | 2014-8-26 13:44 | 只看该作者
ucos是基于优先级的抢占式实时操作系统,任何时刻都可能会发生任务切换!

使用特权

评论回复
10
xzp114| | 2014-8-26 16:35 | 只看该作者
这就是实时操作系统,uCOS是基于抢占式的内核,高优先级自然会剥夺的优先级的CPU使用权!

使用特权

评论回复
11
hello_海涛| | 2015-9-8 07:51 | 只看该作者
我用ucos3没有楼主这个问题啊,不到延时函数,即使是低优先级的任务也不会被强占,
楼主是不是在中断里进行调度了啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

110

帖子

1

粉丝