ucos任务切换是不是一定要关中断?
ucos任务切换是不是一定要关中断? 你看临界区的代码就知道了在很多教程里面这个是重点讲解的
应该不多 Jigsaw 发表于 2012-6-29 23:37 static/image/common/back.gif
你看临界区的代码就知道了
在很多教程里面这个是重点讲解的
应该不多
有什么方法能缩短关中断的时间? 如果你只是使用ucos,那么你就需要了解它的实时特性,如果你想“缩短”关中断的时间,那就改写它吧。 John_Lee 发表于 2012-6-30 09:42 static/image/common/back.gif
如果你只是使用ucos,那么你就需要了解它的实时特性,如果你想“缩短”关中断的时间,那就改写它吧。 ...
发现每次中断服务程序退出时,都要查找一次最高优先级的任务,完成一次任务的切换.
把非 时钟节拍的中断 切换任务取消掉 会不会好一点 ? 显然不能简单地取消某中断可能导致的任务切换,否则ucos就只能在systick中断切换任务,而失去了“抢占”的优点。
这样做可能有些改善:void Handler()
{
do something...
if (need wakeup task) {
OSIntEnter();
OS...Post(...);
OSIntExit();
}
}在 do something,可以处理一些“与任务调度无关”的操作,如果中断服务例程自己就能处理事件的全部工作,那么就无需唤醒任务继续处理,此时中断服务例程就可以直接返回了。
当中断服务例程需要唤醒任务继续处理事件,那么就可以在执行 ...Post() 函数前,执行 OSIntEnter(),Post 后,再执行 OSIntExit() 切换任务。 John_Lee 发表于 2012-7-1 22:04 static/image/common/back.gif
显然不能简单地取消某中断可能导致的任务切换,否则ucos就只能在systick中断切换任务,而失去了“抢占”的 ...
如果systick为1ms 仍然可以抢占的啊。 ljt80158015 发表于 2012-7-2 08:58 static/image/common/back.gif
如果systick为1ms 仍然可以抢占的啊。
实时性降低,假如这个任务需要在0.5ms内响应,这样做,这个任务就有可能不能实时响应 dzcn 发表于 2012-7-2 09:07 static/image/common/back.gif
实时性降低,假如这个任务需要在0.5ms内响应,这样做,这个任务就有可能不能实时响应 ...
OSTimeDLY() 的最小单位是MS吧做不到0.5ms
页:
[1]