ARM異常處理

2021-06-08 05:14:30 字數 618 閱讀 2161

arm支援7種型別的異常,它們是:

復位異常

未定義指令異常

軟中斷指令異常

預取指令異常

資料中止訪問異常

中斷異常

快速中斷異常

arm異常向量表

當異常發生時,arm將做如下事情

(1)將異常發生處下條指令位址儲存到相應工作模式下lr暫存器中

(2)將cpsr暫存器值複製到相應異常模式下的spsr暫存器中

(3)切換arm工作模式

(4)如果異常模式是復位模式或者是快速中斷模式,禁止所有快速中斷(cpsr[6]=1)

(5)禁止中斷cpsr[7]= 1

(6)設定pc暫存器值為相應異常向量位址

我們看arm異常向量表中,異常向量位址空間大小為4個位元組,也就是說這段空間剛好能存放一條arm指令,所以我們可以在異常這段位址空間中存放一條跳轉指令,跳轉到我們的異常處理程式中,u-boot中啟動**就是這樣做的:

_start: b       start_code

復位異常時,跳轉到start_code標號處。

ARM異常處理流程

在學習與開發arm處理器的過程中,乙個不能繞開的話題就是異常處理流程。它在arm的體系架構中,佔據著不可動搖的重要地位。此處就以coterx a系列的arm處理器簡單分析一下異常中斷處理流程。說異常處理流程之前,我們先說一下arm處理器的工作模式和異常源。在coterx a系列之前的arm處理器,一...

arm異常處理流程

1.什麼是異常?cpu正常執行的時候,出現一些突發事件,我們的cpu就必須暫停當前程式的執行,去處理這些異常 2.cpu中有哪些異常?1.reset 上電 重啟 2.undef 流水線中某個非法指令到達執行狀態的時候執行 3.swi 軟中斷指令 4.prefetch 當乙個指令被從記憶體中預取時,由...

arm 異常處理結構

概念 正常的程式執行過程中發生暫時的停止稱為異常,如果發現異常情況,將會進行異常處理 作用 快速響應使用者的行為,提高cpu的響應能力 異常型別 異常處理的三個步驟 1 保護現場 工作模式儲存 cpsr spsr 自動完成 自能儲存在spsr中,其他暫存器不行 資料的儲存 stmfd sp 需手動完...