中断向量表作用
核心作用:建立中断源与对应处理程序之间的映射关系
-
快速定位中断服务程序(ISR)当硬件或软件触发中断时(如外设请求、定时器溢出、异常错误等),系统会产生一个唯一的 “中断号”(或 “向量号”),标识中断的来源。中断向量表中存储了与每个中断号对应的中断服务程序入口地址(即处理该中断的代码起始地址)。CPU 收到中断后,会根据中断号直接在向量表中查找对应的入口地址,无需复杂的寻址计算,从而大幅缩短中断响应时间。
-
统一管理中断源系统中可能存在多个中断源(如 UART、SPI、GPIO、看门狗等),每个中断源对应不同的处理逻辑。中断向量表通过 “中断号 - 入口地址” 的一一映射,将所有中断源的处理程序集中管理,避免了中断处理的混乱。例如,在 x86 架构中,中断向量表包含 256 个向量(0~255),分别对应除法错误、时钟中断、键盘中断等不同事件;在 ARM Cortex-M 系列中,向量表包含复位、NMI、硬 fault、各类外设中断等向量。
-
作为硬件与软件的接口中断本质上是硬件触发的 “异步事件”,而中断处理依赖软件代码(ISR)。中断向量表是两者的桥梁:
- 硬件通过产生中断号 “通知” CPU 需要处理的事件;
- CPU 通过向量表找到软件定义的处理程序,完成从 “硬件信号” 到 “软件执行” 的转换。
-
支持中断嵌套与优先级(间接作用)部分系统中,中断向量表与中断控制器(如 NVIC、PIC)配合,可通过向量表的布局或配置,间接支持中断优先级管理。例如,高优先级中断的向量可被优先响应,甚至打断低优先级中断的处理(即中断嵌套),这一机制依赖向量表对不同优先级中断的明确定位。
-
灵活性与可配置性现代处理器(如嵌入式 MCU)的中断向量表通常支持动态修改(如通过代码重映射到 RAM)。这使得系统可根据需求更新中断处理程序(如固件升级时替换 ISR),或在不同场景下切换处理逻辑,提升了系统的适应性。
总结
中断向量表是中断处理机制的 “导航系统”—— 它通过预先存储的入口地址,让 CPU 能在中断发生时 “一键直达” 处理程序,既保证了响应速度,又实现了对多中断源的有序管理,是计算机系统实时性和可靠性的核心保障。