详细描述Cortex-M系列处理器的中断和中断向量表。
Cortex-M系列处理器中的中断是一种事件驱动的机制,用于处理外部事件或异常情况。当中断事件发生时,处理器会立即暂停当前任务,保存当前状态并跳转到中断服务程序来处理中断。Cortex-M处理器的中断向量表是一个特残的数据结构,其中包含每种中断的处理程序地址。当发生中断时,处理器会根据中断号从中断向量表中找到对应的中断处理程序地址,然后跳转到该地址执行相应的中断服务程序。中断向量表一般位于处理器的起始地址处,是一个只读的数据结构。Cortex-M处理器的中断向量表在内存中的地址是固定的,每个中断的中断向量在表中的偏移位置也是固定的。中断向量表的结构如下所示:
| 索引 | 中断类型 | 地址 |
|---|---|---|
| 0 | 复位中断 | 0x00000000 |
| 1 | 非屏蔽中断 | 0x00000004 |
| ... | ... | ... |
| n | 特殊中断 | 0x0000004n |
例如,Cortex-M4处理器的中断向量表如下所示:
| 索引 | 中断类型 | 地址 |
|---|---|---|
| 0 | 复位中断 | 0x00000000 |
| 1 | NMI | 0x00000004 |
| 2 | HardFault | 0x00000008 |
| ... | ... | ... |
| n | 特殊中断 | 0x0000004n |