Embedded 关于ISR期间中断的问题

Embedded 关于ISR期间中断的问题,embedded,hardware,interrupt,Embedded,Hardware,Interrupt,第一次张贴在这里,让我知道这是否应该张贴在其他地方。请善待我:p 在一次徒步旅行中,我遇到了这个问题,之后我找不到确切的答案 假设我有一个事件的ISR。通常,事件将触发中断,ISR将运行,然后我们将继续我们的快乐之路 假设现在我有一些共享变量,作为一个超级简单的修复,我在关键部分全局禁用中断。如果事件发生在该关键部分,ISR是在重新启用中断后执行,还是从未处理该事件 此外,如果在中断标志清除后但在ISR完成之前,ISR内部发生事件,会发生什么情况?如果发生多次,是否只处理ISR中发生的第一次 感

第一次张贴在这里,让我知道这是否应该张贴在其他地方。请善待我:p

在一次徒步旅行中,我遇到了这个问题,之后我找不到确切的答案

假设我有一个事件的ISR。通常,事件将触发中断,ISR将运行,然后我们将继续我们的快乐之路

假设现在我有一些共享变量,作为一个超级简单的修复,我在关键部分全局禁用中断。如果事件发生在该关键部分,ISR是在重新启用中断后执行,还是从未处理该事件

此外,如果在中断标志清除后但在ISR完成之前,ISR内部发生事件,会发生什么情况?如果发生多次,是否只处理ISR中发生的第一次

感谢所有的答案。通常情况下,我会保持ISR足够短,这样就不会发生这种情况


谢谢

由于您对特定的处理器或中断控制器没有具体说明,因此以下内容通常是正确的。对于特定的实现,您必须查阅特定硬件的参考资料

当中断被禁用时发生中断时,将设置一个“中断挂起”标志,如果事先未明确清除该标志,则一旦中断被重新启用,将立即调用中断

此外,如果在中断标志清除后但在ISR完成之前,ISR内部发生事件,会发生什么情况

假设中断控制器自动禁用活动中断,中断将再次变为挂起,ISR将在完成后立即调用。挂起标志不是计数对象,因此如果设置挂起标志后发生多个事件,则不会导致ISR针对每个事件运行

如果您的ISR未在另一事件发生之前完成,则您有以下一项或多项:

  • ISR执行时间过长
  • 应用程序的处理器速度太慢
  • 对处理器性能的期望过高
  • 拙劣的设计
  • ISR应短且具有确定性(即,它应具有恒定的或至少有界的执行时间)。一般来说,它应该用来向一些约束较少的进程发出信号,以执行较慢且确定性较低的处理,使用缓冲或事件计数(例如在RTOS中的消息队列或计数信号量)来处理确定性中的不匹配


    例如,在信号处理中,ADC可能具有非常高的采样率,并且每个采样产生一个中断,因此处理器可能无法处理中断率。在这种情况下,使用ADC中断可能是不实际的——任何高于1KHz的采样率,但取决于处理器性能以及可用CPU周期内必须完成的其他工作。在这种情况下,一种解决方案是使用DMA传输,DMA控制器在样本完成时发出信号,并将样本直接传输到内存。可以将其配置为在为整个样本块生成单个中断之前对多个样本执行此操作。一次处理一组样本通常比在中断中一次处理一个样本的开销要低得多。

    由于您对特定的处理器或中断控制器不太了解,因此以下内容通常是正确的。对于特定的实现,您必须查阅特定硬件的参考资料

    当中断被禁用时发生中断时,将设置一个“中断挂起”标志,如果事先未明确清除该标志,则一旦中断被重新启用,将立即调用中断

    此外,如果在中断标志清除后但在ISR完成之前,ISR内部发生事件,会发生什么情况

    假设中断控制器自动禁用活动中断,中断将再次变为挂起,ISR将在完成后立即调用。挂起标志不是计数对象,因此如果设置挂起标志后发生多个事件,则不会导致ISR针对每个事件运行

    如果您的ISR未在另一事件发生之前完成,则您有以下一项或多项:

  • ISR执行时间过长
  • 应用程序的处理器速度太慢
  • 对处理器性能的期望过高
  • 拙劣的设计
  • ISR应短且具有确定性(即,它应具有恒定的或至少有界的执行时间)。一般来说,它应该用来向一些约束较少的进程发出信号,以执行较慢且确定性较低的处理,使用缓冲或事件计数(例如在RTOS中的消息队列或计数信号量)来处理确定性中的不匹配

    例如,在信号处理中,ADC可能具有非常高的采样率,并且每个采样产生一个中断,因此处理器可能无法处理中断率。在这种情况下,使用ADC中断可能是不实际的——任何高于1KHz的采样率,但取决于处理器性能以及可用CPU周期内必须完成的其他工作。在这种情况下,一种解决方案是使用DMA传输,DMA控制器在样本完成时发出信号,并将样本直接传输到内存。可以将其配置为在为整个样本块生成单个中断之前对多个样本执行此操作。一次处理一块样本通常比在中断中一次处理一个样本的开销要低得多。

    通常