Cortex-M3-异常与中断-向量表 s
生活随笔
收集整理的這篇文章主要介紹了
Cortex-M3-异常与中断-向量表 s
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Cortex-M3-異常與中斷
- Cortex‐M3 支持大量異常,包括 16‐4‐1=11 個(gè)系統(tǒng)異常,和最多 240 個(gè)外部中斷——簡稱 IRQ。具體使用了這 240 個(gè)中斷源中的多少個(gè),則由芯片制造商決定。由外設(shè)產(chǎn)生的中斷信號,除了 SysTick 的之外,全都連接到 NVIC 的中斷輸入信號線。典型情況下,處理器一般支持 16 到 32 個(gè)中斷,當(dāng)然也有在此之外的。
- 作為中斷功能的強(qiáng)化,NVIC 還有一條 NMI 輸入信號線。NMI 究竟被拿去做什么,還要視處理器的設(shè)計(jì)而定。在多數(shù)情況下,NMI 會被連接到一個(gè)看門狗定時(shí)器,有時(shí)也會是電壓監(jiān)視功能塊,以便在電壓掉至危險(xiǎn)級別后警告處理器。NMI 可以在任何時(shí)間被激活,甚至是在處理器剛剛復(fù)位之后。
- 下圖列出了 Cortex‐M3 可以支持的所有異常。有一定數(shù)量的系統(tǒng)異常是用于 fault 處理的,它們可以由多種錯(cuò)誤條件引發(fā)。NVIC 還提供了一些 fault 狀態(tài)寄存器,以便于 fault 服務(wù)例程找出導(dǎo)致異常的具體原因。
?Cortex-M3-向量表 s
- 當(dāng)一個(gè)發(fā)生的異常被 CM3 內(nèi)核接受,對應(yīng)的異常 handler 就會執(zhí)行。為了決定 handler 的入口地址,CM3 使用了“向量表查表機(jī)制”。這里使用一張向量表。向量表其實(shí)是一個(gè) WORD(32 位整數(shù))數(shù)組,每個(gè)下標(biāo)對應(yīng)一種異常,該下標(biāo)元素的值則是該異常 handler 的入口地址。向量表的存儲位置是可以設(shè)置的,通過 NVIC 中的一個(gè)重定位寄存器來指出向量表的地址。在復(fù)位后,該寄存器的值為 0。因此,在地址 0 處必須包含一張向量表,用于初始時(shí)的異常分配。
- 舉個(gè)例子,如果發(fā)生了異常 11(SVC),則 NVIC 會計(jì)算出偏移移量是 11x4=0x2C,然后從那里取出服務(wù)例程的入口地址并跳入。0 號異常的功能則是個(gè)另類,它并不是什么入口地址,而是給出了復(fù)位后 MSP 的初值。?
注 MSP含義:
總結(jié)
以上是生活随笔為你收集整理的Cortex-M3-异常与中断-向量表 s的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cortex-M3-栏目-文章来源
- 下一篇: Cortex-M3-复位(序列)