ARM关中断后中断是否丢失
1个回答
展开全部
ARM 对于每个“中断源”会“记住一个”中断。
例如:某中断源发出中断信号,这个信号会先导致一个中断标志(pending)被设置,注意,这个标志是 1 bit 的单位。如果中断是被禁止的(关了中断),那么这个标志就会一直保持直到开中断后中断被响应,如果在关中断期间,该中断源发出了两次中断信号,由于中断标志只有 1 bit,无法记住第 2 次中断,所以,第 2 次及以后直到开中断之前的中断,都“丢失”了。
对于有附加信息(比如一些外设的寄存器变化,FIFO等等)的中断来说,中断只是一个处理请求,一个和多个是一样的,程序反正要在中断服务例程中处理所有的事务,所以这种“丢失”中断的情况,影响不是很大。
而对于另一些没有附加信息的中断,中断本身就是完全信息,比如一些 GPIO 跳变中断等等,丢失中断可能就影响很严重。
例如:某中断源发出中断信号,这个信号会先导致一个中断标志(pending)被设置,注意,这个标志是 1 bit 的单位。如果中断是被禁止的(关了中断),那么这个标志就会一直保持直到开中断后中断被响应,如果在关中断期间,该中断源发出了两次中断信号,由于中断标志只有 1 bit,无法记住第 2 次中断,所以,第 2 次及以后直到开中断之前的中断,都“丢失”了。
对于有附加信息(比如一些外设的寄存器变化,FIFO等等)的中断来说,中断只是一个处理请求,一个和多个是一样的,程序反正要在中断服务例程中处理所有的事务,所以这种“丢失”中断的情况,影响不是很大。
而对于另一些没有附加信息的中断,中断本身就是完全信息,比如一些 GPIO 跳变中断等等,丢失中断可能就影响很严重。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询