(學習記錄)摘自https://blog.csdn.net/allan0508/article/details/52624618
1、堆疊指標r13(SP):每一種例外模式都有其自己獨立的r13,它通常指向例外模式所專用的堆疊,也就是說五種例外模式、非例外模式(用戶模式和系統模式),都有各自獨立的堆疊,用不同的堆疊指標來索引。這樣當ARM進入例外模式的時候,程式就可以把一般通用暫存器壓入堆疊,回傳時再出堆疊,保證了各種模式下程式的狀態的完整性。
2、連接暫存器r14(LR):每種模式下r14都有自身版組,它有兩個特殊功能。
(1)保存子程式回傳地址。使用BL或BLX時,跳轉指令自動把回傳地址放入r14中;子程式通過把r14復制到PC來實作回傳,通常用下列指令之一:
MOV PC, LR
BX LR
通常子程式這樣寫,保證了子程式中還可以呼叫子程式。
stmfd sp!, {lr}
……
ldmfd sp!, {pc}
(2)當例外發生時,例外模式的r14用來保存例外回傳地址,將r14如堆疊可以處理嵌套中斷。
uj5u.com熱心網友回復:
呃呃。。。發錯發來這里uj5u.com熱心網友回復:
lr 跳轉回來用的,sp 快取當前狀態轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/124365.html
標籤:驅動開發/核心開發
上一篇:STM32 800C 發送彩信
下一篇:雙向可控硅求大神講解
