28377高级别中断来的时候能否打断正在执行的低级别中断,如果能是怎么实现的,还是说就是这样的,高级别中断来了就必然打断正在执行的低级别中断啊?谢谢!
HeiHei:
对的啊 这就是为什么存在中断优先级的原因啊
28377高级别中断来的时候能否打断正在执行的低级别中断,如果能是怎么实现的,还是说就是这样的,高级别中断来了就必然打断正在执行的低级别中断啊?谢谢!
havi houston:
c28x的cpu有中断控制寄存器IER;当系统收到中断后,直到cpu获取到中断服务地址后会将IER中所有的中断都关闭,这个时候是不响应中断的。
除非在中断函数中在将IER寄存器的值打开,才会有中断嵌套
28377高级别中断来的时候能否打断正在执行的低级别中断,如果能是怎么实现的,还是说就是这样的,高级别中断来了就必然打断正在执行的低级别中断啊?谢谢!
shook xu:
回复 HeiHei:
你说的就是高级别的中断必然打断低级别正在执行的中断是吧,不需要做中断嵌套?
28377高级别中断来的时候能否打断正在执行的低级别中断,如果能是怎么实现的,还是说就是这样的,高级别中断来了就必然打断正在执行的低级别中断啊?谢谢!
shook xu:
回复 havi houston:
您的回答跟我原来的认知相同,而且我貌似在哪里看到过说28377好像不支持中断嵌套。但你的楼上TI员工的回答貌似跟我们理解的不一样。你用28系列的哪个芯片实现了中断嵌套呢?
28377高级别中断来的时候能否打断正在执行的低级别中断,如果能是怎么实现的,还是说就是这样的,高级别中断来了就必然打断正在执行的低级别中断啊?谢谢!
Eric Ma:
回复 shook xu:
C2000芯片默认是没有使能中断嵌套的,也就是说,当CPU响应中断后,在执行中断服务函数后,即使有高优先级的中断来的时候,这个时候CPU仍然执行当前的中断服务函数,不会去打断。执行完之后,才会去响应那个中断。
C2000默认的中断优先级只是用于,当两个或多个中断同时出现时,CPU先去相应高优先级的中断。
如果要进行中断嵌套,如高优先级打断低优先级,或是低优先级去打断高优先级的中断,可以参考以下链接:
http://processors.wiki.ti.com/index.php/Interrupt_FAQ_for_C2000#Q:_Can_interrupts_be_nested.3F
ERIC