arm 異常處理結構

2022-07-17 22:24:28 字數 920 閱讀 1172

概念:正常的程式執行過程中發生暫時的停止稱為異常,如果發現異常情況,將會進行異常處理

作用:快速響應使用者的行為,提高cpu的響應能力

異常型別:

異常處理的三個步驟:

1、保護現場:

工作模式儲存:cpsr-->spsr(自動完成)自能儲存在spsr中,其他暫存器不行

資料的儲存:stmfd sp!,(需手動完成)

3、恢復現場:

sp!-->r0-r12(還原資料)

spsr-->cpsr(還原工作狀態)

pc-->lr-4(pc指向的是正在取指的那條指令,與真正執行的指令相差8位元組,與正在解碼的指令相差4位元組)所以需要減4:參考流水線結構

具體的操作**:

irq_handle:

ldr sp,=0xd0037180

//(指明棧irq棧區的起始位址)memory mmap

sub lr,lr,#4

stmfd sp!, //

防止bl 執行後pc指標被覆蓋,將lr放到棧中

bl 真正的中斷處理函式,自動返回,恢復pc

ldmfd sp!,^//

加了『^』表示自動恢復cpsr;

上圖為中斷向量表:程式設計師使用的主要是irq和fiq;

fiq快速響應的原因是:

1、優先順序比irq更高

2、擁有比irq更多的獨立暫存器

ARM異常處理

arm支援7種型別的異常,它們是 復位異常 未定義指令異常 軟中斷指令異常 預取指令異常 資料中止訪問異常 中斷異常 快速中斷異常 arm異常向量表 當異常發生時,arm將做如下事情 1 將異常發生處下條指令位址儲存到相應工作模式下lr暫存器中 2 將cpsr暫存器值複製到相應異常模式下的spsr暫...

ARM異常處理流程

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

arm異常處理流程

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