uboot阅读笔记之cpu工作模式(SVC32)
@set the cpu?to SVC32 mode
mrs?r0,cpsr??
@把CPSR內容存入r0.使用了mrs指令:專用寄存器到通過寄存器的存取.
@CPSR當前程序狀態寄存器格式如下:
@??31??30??29??28??27??26??25??24??~ ~ ~ 8???7???6???5????4????3????2????1????0
@?___ ___ ___ ___ ___ ___ ___ ___??_ _ _ _??___ ___ ___ ____ ____ ____ ____ ____
@| N | Z | C | V | * | * | * | * | *??*??* | I | F | T | M4 | M3 | M2 | M1 | M0 |
@
bic?r0,r0,#0x1f?
@bic指令(bit clear): r0:= r0 and (not op2).上邊的指令目的是把bit0~bit4清零.
?
orr?r0,r0,#0xd3
@r0:= r0 or 0xd3 . 以上三條指令執行后r0值為:**** **** **** **** **** ***** 11*1 0011
?
msr?cpsr,r0??
@把r0存于cpsr.注意:msr指令是專用的通用寄存器到特殊功能寄存器的指令與mrs對應
?
說明:通過上邊的指令可以看到,實現了兩個功能.1,disable 外部中斷(IRQ)與快速中斷(FIR).2,把系統設為SVC32狀態(超級保護)即M4~M1=10011
總結
以上是生活随笔為你收集整理的uboot阅读笔记之cpu工作模式(SVC32)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 芯片专业词汇总结
- 下一篇: c++算术溢出_二进制安全之堆溢出(系列