qjs412_avr 发表于 2012-10-14 12:03:59

头都大了,关于uc/osII的任务调度问题,望大家指点迷津

本人正学习把uc/osII移植到LPC2132上,移植再看周工的例程

其中有一点始终想不通,他是采用T0作为uc/osII的时钟,当T0中断发生时,进入IRQ中断模式,

是不是先进入IRQ.s汇编中的程序?如果不是,C中的中断服务程序中只是做了如下三步,并没有进行任务调度

IRQ.s中做了任务调度及c文件服务程序调用等等一些操作。但是如果是这样,岂不是每一个IRQ中断都可以引发一次任务调度,那么uc/osII的时钟就不是T0所决定的了!

这样的话,岂不是很有问题!

应该是还有我理解不对的地方,想不通啊?{:mad:}

T0IR = 0x01;
VICVectAddr = 0;            // 通知中断控制器中断结束
OSTimeTick();

qjs412_avr 发表于 2012-10-14 13:05:26

高手不现身啊{:sweat:}

qjs412_avr 发表于 2012-10-14 14:25:02

在线等

sxljm888 发表于 2012-10-14 19:57:19

我不是高手,我把教程中的一部分贴出了,不知道能不能帮到你




qjs412_avr 发表于 2012-10-14 22:53:01

sxljm888 发表于 2012-10-14 19:57 static/image/common/back.gif
我不是高手,我把教程中的一部分贴出了,不知道能不能帮到你

太感谢你了!

通过你的一部分教程,加上下午查了一下资料,发现所有的IRQ中断都会进入同一个汇编程序,其中调用了对应的中断函数

但是至于什么时候任务切换,就看任务是否进入就绪状态!

理解的稍微通顺一点了!!

呵呵...再次谢谢你了{:biggrin:}
页: [1]
查看完整版本: 头都大了,关于uc/osII的任务调度问题,望大家指点迷津