零下5度水不结冰:[转载]uboot阅读笔记之cpu工作模式(SVC32)

来源:百度文库 编辑:偶看新闻 时间:2024/05/04 19:18:55

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

原文地址: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               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