中断控制器检测到中断请求并发送中断信号给处理器。(中断控制器nvic)

中断控制器nvic

功能

中断控制器是一种硬件设备,用于检测中断请求并向处理器发送中断信号。处理器收到中断信号后,会停止当前执行的代码,转而执行中断处理程序。中断处理程序负责处理中断事件,然后处理器将返回到原来的代码。

工作原理

中断控制器通过一个叫做中断请求线(IRQ)的机制来检测中断请求。当一个设备需要中断服务时,它会向中断控制器发送一个 IRQ 信号。中断控制器接收到 IRQ 信号后,会向处理器发送一个中断信号。中断信号是一个特殊的信号,它会导致处理器停止执行当前的代码,转而执行中断处理程序。中断处理程序存储在内存中的一个称为中断向量表的位置。中断向量表是一个数组,每个元素指向一个中断处理程序。中断处理程序负责处理中断事件。例如,如果一个串口设备的中断控制器检测到一个中断中断控制器。NVIC 是一种可屏蔽中断控制器,允许处理器屏蔽某些中断源。它还支持中断优先级和中断嵌套。NVIC 中断控制器由以下寄存器组成:中断向量表基址寄存器 (VTOR):存储中断向量表的基地址。中断控制和状态寄存器 (ICSR):控制中断处理和状态。中断优先级寄存器 (IPR):设置每个中断源的优先级。中断屏蔽寄存器 (ISER):屏蔽或解除对每个中断源的屏蔽。中断清除寄存器 (ICER):清除每个中断源的中断请求。

使用 NVIC 中断控制器

以下步骤说明如何使用 NVIC 中断控制器:1. 配置中断向量表基地址寄存器 (VTOR):将中断向量表的基地址加载到 VTOR 寄存器中。 2. 设置中断优先级: 设置每个中断源的优先级,使用中断优先级寄存器 (IPR)。 3. 屏蔽非必要的中断源: 使用中断屏蔽寄存器 (ISER),屏蔽非必要的中断源。 4. 清除中断请求: 使用中断清除寄存器 (ICER),清除中断请求。 5. 编写中断处理程序: 为每个中断源编写一个中断处理程序,并将其存储在中断向量表中。

结论

中断控制器是一种重要的硬件设备,用于处理中断请求。中断控制器检测中断请求并向处理器发送中断信号。处理器收到中断信号后,会执行中断处理程序,中断处理程序负责处理中断事件。中断控制器在嵌入式系统中至关重要,因为它允许处理器响应外部事件并执行必要的动作。

NVIC控制器是什么?

NVIC提供中断控制器,用于总体管理异常,称之为“内嵌向量中断控制器:Nested Vectored Interrupt Controller (NVIC)”。NVIC和处理器内核紧密相连。

Cortex ‐ M3在内核水平上搭载了一颗中断控制器——嵌套向量中断控制器NVIC(Nested Vectored

Interrupt Controller)。它与内核有很深的“私交”——与内核是紧耦合的。

特征:

NVIC 依照优先级处理所有支持的异常,所有异常在“处理器模式”处理。NVIC 结构支持32(IRQ[31:0]) 个离散中断,每个中断可以支持 4 级离散中断优先级。所有的中断和大多数系统异常可以配置为不同优先级。

当中断发生时,NVIC 将比较新中断与当前中断的优先级,如果新中断优先级高,则立即处理新中断。当接受任何中断时,ISR的开始地址可从内存的向量表中取得。

不需要确定哪个中断被响应,也不要软件分配相关中断服务程序(ISR)的开始地址。当获取中断入口地址时,NVIC 将自动保存处理状态到栈中,包括以下寄存器“PC, PSR, LR, R0~R3, R12” 的值。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论