我使用的是Aurix Tricore TC27x主板。这里我使用两个中断,每5us(高优先级)将发生一次中断,每100us(低优先级)将发生另一次中断。执行100us(低优先级)中断的时间是40us,因此在执行100us(低优先级)中断时,如果5us(高优先级)中断到来,则不会发生上下文切换。
完成低优先级中断后,仅切换到高优先级中断。因此,我丢失了数据。
为什么没有被抢先一步?
先谢谢。
答案 0 :(得分:0)
在安装中断处理程序时尝试使用__bisr(IPRN),这将允许高优先级中断中断较低优先级的中断。我不确定这是否包含在所有编译器中,但肯定可以用于任务编译器。