jeep_jun 发表于 2012-6-15 16:53:07

关于ucos-ii的中断问题??

我在任哲编的书《嵌入式实时操作系统uCOS-II原理及应用》一书中有这么一段话没看明白
系统接收到中断请求后,如果这时CPU处于中断允许状态(即中断是开放的),系统就会中止正在运行的当前任务,而按照中断向量的指向而去运行中断服务子程序;当中断服务子程序的运行结果后,系统将会根据情况返回到被中止的任务继续运行,或者转向运行另一个具有更高优先级级别的就绪任务。
   在上面叙述的中断过程中,有一点是需要特别注意的,这就是对于可剥夺型的uCOS-II内核来说,中断服务子程序运行结束之后,系统将会根据情况进行一次任务调度去运行优先级别最高的就绪任务,而不是一定要接续运行被中断的任务。

    上面这段话让我很费解,假如A,B,C,D四个任务,假如cpu正在执行D任务,在t1时刻中断来了执行C任务,当执行完C任务的时候,以上面的话理解为在执行A,B,C任务后在执行D任务,这样理解对吗?如果对的话,那uCOS-II不能做到实时性了啊?小弟正在矛盾中,请各位大侠指教?????????

i55x 发表于 2012-6-15 17:15:02

显然是理解错误,执行任务调度只是会执行满足条件的高优先级任务,并不是执行所有高优先级任务。
比如ABCD四个任务优先级从大到小,执行D任务时发生中断,中断处理函数post一个sem,中断结束后进行任务调度,会执行post在这个sem上面的任务,比如B,而剩下的两个无关任务A和C都是不会执行的。
页: [1]
查看完整版本: 关于ucos-ii的中断问题??