嵌套向量中断控制器

Posted

技术标签:

【中文标题】嵌套向量中断控制器【英文标题】:Nested Vectored Interrupt Controller 【发布时间】:2017-01-23 11:00:12 【问题描述】:

我一直在努力使用 NVIC,为什么要使用它?以及它是如何使用的? 在我正在使用的项目中

 NVIC_IntDisable(NVIC_SSP0); 
 NVIC_ClrPend(NVIC_PIO_0);
 NVIC_IntPri(NVIC_PIO_0, 17);    
 NVIC_IntEnable(NVIC_PIO_0);     

这些都是在system.c 中定义的,谁能解释我为什么要使用这些特定的命令。请提及任何我可以推荐的好材料。

谢谢。

【问题讨论】:

你能说得更具体点吗?事实上,您的问题要求提供数据表中的几乎所有信息。 尽管对于专家来说您指的是 ARM NVIC 可能很明显,但您的问题是特定于目标的,因此您应该指定目标。此外,文件 system.c 是特定于您的应用程序、库或开发工具链的,因此您可能也应该指定它。最终您需要阅读 ARM 技术文档以获取详细信息;更简单的介绍也许是 Joseph Yiu 的书之一(假设 ARM Cortex-M)。但是,如果你要问 NVIC 是干什么用的,你可能首先需要学习一些中断和微处理器的基础知识。 【参考方案1】:

NVIC 是嵌套向量中断控制器(类似于 x86 PC 上的 PIC)。

您可以在 ARM 网站上获取更多信息 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0179b/ar01s01s01.html 以及子架构的特定芯片数据表和 ARM 手册。

【讨论】:

我个人觉得这篇博文对理解 NVIC 很有帮助:mcuoneclipse.com/2016/08/14/…。它以通俗易懂的方式详细解释了基于ARM Cortex-M的系统的中断系统。 这个答案所做的只是说明OP已经知道的内容(从阅读问题中可以明显看出),然后删除手册的链接。事实上,这个问题可能过于宽泛,无法以目前的形式回答。 嗯,问题还问到“好材料”,我链接到了。我也曾要求澄清。另一种选择只是对这个问题投反对票,但这似乎效率更低。

以上是关于嵌套向量中断控制器的主要内容,如果未能解决你的问题,请参考以下文章

i.MX RT开发笔记-08 | i.MX RT1062嵌套中断向量控制器NVIC(按键中断检测)

STM32之中断

中断异常和系统调用

STM32 中断和事件

什么是NVIC,其作用是什么?

GPIO外部中断