• 正文
    • 前言
    • 正文
    • ARM64(ARMv8)異常分類
    • 關(guān)鍵差異說明
    • 總結(jié)
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

arm32和arm64異常分類梳理 | 同步異常、異步異常經(jīng)常搞得我暈頭轉(zhuǎn)向,現(xiàn)在終于搞清楚了

04/08 16:10
422
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

哈嘍,大家好,我是程序員秘書LittleG。

上篇:常見文件系統(tǒng)(ext4、squashfs、ubifs、jffs2、tmpfs、fat32/vfat、f2fs)特性匯總對(duì)比

前言

上學(xué)的時(shí)候玩過arm 32的板子,工作后一直接處的都是arm64架構(gòu)的產(chǎn)品,但最近公司有一款32的產(chǎn)品要搞,不得不再倒回去學(xué)習(xí)學(xué)習(xí)了。

正文

ARM32(ARMv7)異常分類

1. 同步異常(Synchronous Exceptions)

? 定義:由當(dāng)前執(zhí)行指令直接觸發(fā),異常處理返回地址精確指向觸發(fā)指令;

? 類型:

? 復(fù)位(RESET):硬件初始化時(shí)觸發(fā);

? 未定義指令(Undefined Instruction):執(zhí)行非法指令時(shí)觸發(fā);

? 軟件中斷(SWI):通過SWI指令主動(dòng)觸發(fā)系統(tǒng)調(diào)用;

? 預(yù)取指令異常(Prefetch Abort):指令預(yù)取階段內(nèi)存訪問失??;

? 數(shù)據(jù)訪問異常(Data Abort):數(shù)據(jù)加載/存儲(chǔ)階段內(nèi)存訪問失?。?/p>

2. 異步異常(Asynchronous Exceptions)

? 定義:由外部事件觸發(fā),與當(dāng)前指令無關(guān),返回地址不精確指向觸發(fā)源;

? 類型:

? IRQ(普通中斷):外設(shè)請(qǐng)求處理;

? FIQ(快速中斷):高優(yōu)先級(jí)外設(shè)請(qǐng)求;

------

ARM64(ARMv8)異常分類

1. 同步異常(Synchronous Exceptions)

? 定義:指令執(zhí)行直接導(dǎo)致,返回地址精確指向觸發(fā)指令,異常處理需立即響應(yīng);

? 類型:

? 系統(tǒng)調(diào)用(SVC/HVC/SMC):特權(quán)級(jí)別切換指令觸發(fā);

? 內(nèi)存訪問異常:缺頁、權(quán)限錯(cuò)誤等MMU相關(guān)錯(cuò)誤;

? 未定義指令/對(duì)齊錯(cuò)誤:執(zhí)行非法指令或未對(duì)齊內(nèi)存訪問;

? 調(diào)試異常:斷點(diǎn)、觀察點(diǎn)觸發(fā);

2. 異步異常(Asynchronous Exceptions)

? 定義:由外部硬件信號(hào)觸發(fā),與當(dāng)前指令無關(guān),處理可延遲;

? 類型:

? IRQ(普通中斷):外設(shè)請(qǐng)求,如定時(shí)器、網(wǎng)絡(luò)包到達(dá);

? FIQ(快速中斷):高優(yōu)先級(jí)外設(shè)請(qǐng)求;

? SError(系統(tǒng)錯(cuò)誤):總線錯(cuò)誤、硬件故障等不可恢復(fù)錯(cuò)誤;

------

關(guān)鍵差異說明

1. ARM32

? 同步異常涵蓋內(nèi)存訪問錯(cuò)誤(Prefetch/Data Abort),因其由指令執(zhí)行直接導(dǎo)致,需立即處理。

? 異步異常僅限中斷(IRQ/FIQ),無SError概念。

2. ARM64

? 同步異常更廣泛:包括系統(tǒng)調(diào)用、內(nèi)存錯(cuò)誤等需精確響應(yīng)的場(chǎng)景。

? 新增SError類別:歸類為異步異常,用于硬件錯(cuò)誤處理。

? 異常級(jí)別(EL0-EL3):同步異??稍贓L0觸發(fā)(如用戶態(tài)系統(tǒng)調(diào)用),異步異常僅由EL1及以上處理。

------

總結(jié)

? 同步/異步定義:通過指令相關(guān)性、返回地址精度區(qū)分。

? ARM64新增SError:歸類為異步異常,用于硬件錯(cuò)誤。

? 內(nèi)存訪問異常歸屬:Prefetch/Data Abort由指令觸發(fā),屬于同步異常。

按照ARM官方文檔定義,異常分類嚴(yán)格遵循指令執(zhí)行與外部事件的因果關(guān)系。

下期見~

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄
<b id="geafi"><ruby id="geafi"></ruby></b>

<b id="geafi"><noframes id="geafi">