硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2951|回复: 7
收起左侧

[μCOS-III] 请教空闲任务切换问题

[复制链接]

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2016-10-24 15:20:57 | 显示全部楼层 |阅读模式
空闲任务为一直占用CPU的任务,代码中没有任务切换任务的代码,那 是不是只要空闲任务一执行,就意味着要切换到其他高优先级任务只能靠系统滴答中断来切换,假如系统时钟为1ms的话,是不是切换的时间是需要等到1ms时间?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2016-10-24 16:43:34 | 显示全部楼层
切换到高优先级任务,除了这个系统时钟节拍中断以外,还有任何其它中断服务程序,只要你在里面调用了相关的uCOS API函数将高优先级任务就绪了,退出的时候也调用了那个退出函数,就可以切换。
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
 楼主| 发表于 2016-10-25 08:42:40 | 显示全部楼层
如果没有中断等打断,是不是就只有等待系统时钟切换了,能否在空闲函数中加入切换函数?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2016-10-25 10:31:19 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:如果没有中断等打断,是不是就只有等待系统时钟切换了,能否在空闲函数中加入切换函数? (2016-10-25 08:42) 
没必要,即使加入了也不会切换,因为没有高优先级任务就行,高优先级任务就绪了自然会抢占。
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
 楼主| 发表于 2016-10-25 12:19:43 | 显示全部楼层
目的是想高优先级任务只要一就绪就能执行, 不然的话只要进入空闲任务, 就只能等待系统任务切换后才能运行高优先级任务(需要系统滴答时间)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2016-10-25 12:30:35 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:目的是想高优先级任务只要一就绪就能执行, 不然的话只要进入空闲任务, 就只能等待系统任务切换后才能运行高优先级任务(需要系统滴答时间) (2016-10-25 12:19)
你的理解还是不够全面,关键的问题就在什么时候高优先级任务才会就绪。
只有在滴答定时器中断,或者其它中断中,高优先级任务才有就绪的机会。空闲任务一直执行的时候,高优先级任务怎么去就绪。

你再捋一捋。
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
 楼主| 发表于 2016-10-28 15:10:00 | 显示全部楼层
我觉得这个空闲任务应该这么理解:
1. 如果没其他任务时,就会切换到空闲任务执行;  
2.空闲任务只要执行,就会一直占用CPU;
3.当有中断触发,则进中断处理,处理完后会强制切换一次任务;
4.系统滴答时间到后会强制切换一次任务,如果没有其他高优先级任务就绪,则继续运行空闲任务;

这么理解来空闲任务其实影响其他任务的实时性,除非用中断去强行打断一次
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2016-10-29 10:08:35 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:我觉得这个空闲任务应该这么理解:
1. 如果没其他任务时,就会切换到空闲任务执行;  
2.空闲任务只要执行,就会一直占用CPU;
3.当有中断触发,则进中断处理,处理完后会强制切换一次任务;
4.系统滴答时间到后会强制切换一次任务,如果没有其他高优先级任务就绪,则继续运行空闲 .. (2016-10-28 15:10) 
还是没有理解到点上,不需要强制切换,就绪就是就绪了。举一个简单的例子,比如高优先级任务延时100ms后执行,他们怎么100ms后切换回这个高优先级任务? 你考虑下。

抢占式调度器的关键就在这里了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 13:52 , Processed in 0.291511 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表