經(jīng)典ARM核心處理器有7個(gè)例外,7個(gè)例外存儲在例外矢量表中,例外矢量表地址默認(rèn)為地址0,部分處理器可以將例外矢量表放置在地址0xFFFF0000。

如圖

圖:ARM異常向量

關(guān)于ARM異常我們主要了解如下內(nèi)容:

1、異常種類:復(fù)位異常,未定義指令異常,軟件中斷異常,預(yù)取指令異常、數(shù)據(jù)異常、中斷、快速中斷

2、知道異常發(fā)生時(shí),硬件做哪些事情:

a、復(fù)制CPSR寄存器的值到對應(yīng)模式的SPSR寄存器中(用于保護(hù)核恢復(fù)該寄存器值)

b、硬件修改CPSR寄存器,包括:切換到ARM狀體,切換到對應(yīng)的異常模式,根據(jù)優(yōu)先級禁止中斷

c、保存返回地址到對應(yīng)模式的LR(R14),用于退出異常時(shí)返回繼續(xù)執(zhí)行。

d、設(shè)置PC寄存器的值到對應(yīng)的異常向量入口地址

3、當(dāng)異常處理完畢返回,軟件需要根據(jù):

a、LR寄存器的值計(jì)算返回地址

b、根據(jù)SPSR寄存器的值,恢復(fù)CPSR寄存器的值

注:以上兩個(gè)工作需要由一條指令完成,這條指令稱為異常返回指令。

4、要大概了解異常向量和異常向量表

5、應(yīng)該了解為什么FIQ異常入庫地址放到向量表的最高端

6、應(yīng)該知道異常向量入口可以放哪些指令

7、要了解某個(gè)異常大致由哪幾個(gè)事件觸發(fā)

8、了解異常和模式的對應(yīng)關(guān)系,根據(jù)模式和寄存器的對應(yīng)關(guān)系,可以知道異常處理程序中,有哪些專用寄存器(可選)。

1.《ARM中斷和異常有什么關(guān)系》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《ARM中斷和異常有什么關(guān)系》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/yule/2071840.html