uboot阅读笔记之cpu工作模式(SVC32)

题目:设置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 |
@

uboot阅读笔记之cpu工作模式(SVC32)_第1张图片
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

 

原文:http://blog.sina.com.cn/s/blog_4117d8560100b432.html

另一编参考http://blog.csdn.net/jianchi88/article/details/7062902

你可能感兴趣的:(c,工作)