TI中文支持网
TI专业的中文技术问题搜集分享网站

SYS/BIOS 中断优先级

按照我的理解,系统使用timer2做systick,在有的嵌入式系统介绍时说这个timer的优先级是最高的,只要全局中断不关闭,以实现系统的正常调度。

但是上面的系统timer2默认的优先级只有18,几乎是最低的了,不知道C2000是如何处理的,在高优先级ISR运行时,低优先级的timer2是否有机会运行?

而timer2 systick中断时,我想应该关全局中断,只有NMI不受影响。那位能针对sys/bios说一下timer2在sys/bios中的具体细节?谢谢!

Jeanne Yi:

因为systick是比较频繁的中断,所以不能把它的优先级设置为最高,以免影响其他实时处理的执行。

按照我的理解,系统使用timer2做systick,在有的嵌入式系统介绍时说这个timer的优先级是最高的,只要全局中断不关闭,以实现系统的正常调度。

但是上面的系统timer2默认的优先级只有18,几乎是最低的了,不知道C2000是如何处理的,在高优先级ISR运行时,低优先级的timer2是否有机会运行?

而timer2 systick中断时,我想应该关全局中断,只有NMI不受影响。那位能针对sys/bios说一下timer2在sys/bios中的具体细节?谢谢!

decai wang:

回复 Jeanne Yi:

无论是哪个优先级,systick是不是在中断产生时把中断全部关闭呢?即使高优先级的中断来了也没有用。

我觉得因为systick中断要进行很多判别,是否要进行任务切换等,它都是通过读写很多全局的变量,例如TCB实现的,因此,在维护OS的数据完整性上,systick ISR中断必须关掉所有其他中断。

赞(0)
未经允许不得转载:TI中文支持网 » SYS/BIOS 中断优先级
分享到: 更多 (0)