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

日期:2008.9.25
目的:熟悉S3C2410初始化过程细节
题目:设置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


转载:http://blog.sina.com.cn/s/blog_4117d8560100b432.html

你可能感兴趣的:(uboot阅读笔记之cpu工作模式(SVC32))