異常處理學習筆記

2022-08-18 04:06:11 字數 1167 閱讀 6819

arm處理器的工作模式

使用者模式 user

快速中斷模式 fiq

處部中斷模式 irq

特權模式supervisor

資料訪問中止模式 abort

未定義指令中止模式 undefined

系統模式 system

1 一上電,

cpu處於

supervisor (svc

管理模式

)2 發生中斷,

cpu進入

riq(

外部中斷模式

)r13,r14切換到自已的

r13,

r14(

r13-irq,r14-irq

)跳轉到0x18

處執行3 碰到一條機器碼,

cpu不認識

,cpu

進入undefined(

未定義指令中止)模式

r13,r14切換到自已的

r13,

r14(

r13-und,r14-und

)跳轉到0x4

執行4 當程式執行 

swi #val ,cpu

會進入svc

模式.r13,r14切換到自已的

r13,

r14(

r13-svc,r14-svc

)跳轉到0x8

處執行swi異常處理硬體所作工作:

1 cpu進入

svc模式

2 cpsr內容複製到

spsr_svc

中3 r13,r14切換

r13_svc,r14_svc

4 下一條指令儲存到

r14_svc

中5 跳轉到

0x8t

處執行 

軟體所作工作:

1 在位址

8處放一條跳轉指令

2 儲存現場

3 處理異常

4 恢復現場

swi 應用場景

:如果應用中用到open read write

等函式相當於使用者發出一條swi #val

的指令核心根擾val

呼叫相應的函式

(sys_open/sys_read)

未定義指令應用場景:

一般用於除錯程式

在程式中新增未定義指令,

在異常處理中作相應操作

異常處理學習筆記

arm處理器的工作模式 使用者模式user 快速中斷模式fiq 處部中斷模式irq 特權模式supervisor 資料訪問中止模式abort 未定義指令中止模式undefined 系統模式system 1一上電,cpu處於 supervisor svc 管理模式 2發生中斷,cpu進入 riq 外部...

異常處理學習

1 異常的使用場合 1 應用程式 2 庫 最好不要捕獲異常,除非某個異常表示的是 可以處理的情況 但要假定呼叫 可以處理他們。2 net 執行時可以把整個程式放在另乙個更大的 try塊中,如果發生的異常 沒有處理,程式流就會退出程式,由 net 執行時中的 catch 塊捕獲它。會導致程式執行中斷,...

C 之異常處理學習筆記

throw語句用於將異常物件丟擲,throw語句將異常丟擲,如果在當前函式中沒有try catch語句能夠處理該異常,則當前函式將立即返回。異常被傳遞到上層呼叫函式,仍然需要try catch語句進行處理,如果上層函式也沒有能力處理該異常,則異常繼續向更上層函式的函式傳遞。如果在函式呼叫棧中的所有函...