我是ARM处理器的新手。 Atmel ATSAMD20e实现了基于ARMv6架构的ARM cortex M0 +处理器。它允许最多32个外部中断,中断信号连接到嵌套矢量中断表(NVIC)。是否可以使用NVIC进行并发中断?如果是这样,我们如何确定可以同时运行的最大中断数?有人可以指出任何解释并发中断处理的文档。感谢
答案 0 :(得分:0)
可以同时运行的最大中断"受堆栈空间,优先级数和系统中断源数量的限制。你说你有32个中断,M0 +有192个级别,我不知道你愿意牺牲多少筹码以获得这种行为。 (并且"并发"实际上是用词不当。他们相互抢先,而不是同时运行)
然而,在实践中,即使如此,支持超过几个优先级别的确并不多。如果您的中断的截止时间要求比最长的中断运行时间短,则只需要这个。请参阅此处(http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337e/Cihcbadd.html),了解堆栈中发生的情况,因为中断被其他中断抢占。