Cortex-M3 的 NVIC(嵌套向量中斷控制器)不直接控制整個異常向量表,但可以管理向量表中與中斷相關的部分行為。以下是 NVIC 對異常向量表的具體控制范圍和相關機制:
1. NVIC 直接控制的部分
NVIC 主要管理 外部中斷(IRQ) 和部分 系統異常 的行為,但對向量表本身的存儲位置和內容沒有直接控制權。其控制范圍包括:
控制對象 | NVIC 的管理能力 |
---|---|
外部中斷(IRQ0-IRQn) | - 使能/禁用中斷(通過 ISER /ICER 寄存器)- 設置優先級(通過 IPR 寄存器)- 掛起/清除中斷狀態(通過 ISPR /ICPR 寄存器) |
部分系統異常 | - SysTick、PendSV、SVC 等可編程優先級異常的優先級配置 - 使能/禁用 SysTick 中斷 |
中斷觸發 | - 支持軟件觸發中斷(通過 NVIC_SetPendingIRQ() ) |
關鍵點:
- NVIC 不負責存儲向量表(向量表由編譯器/鏈接腳本定位在 Flash 起始地址)。
- NVIC 無法修改向量表中的函數地址(向量表是只讀的,燒錄時固定)。
2. 與向量表相關的 NVIC 間接控制
雖然 NVIC 不直接控制向量表內容,但通過以下機制影響異常處理流程:
功能 | NVIC 的作用 |
---|