复位后,arm处理器处于什么模式
答案:2 悬赏:50 手机版
解决时间 2021-02-06 03:06
- 提问者网友:放下
- 2021-02-05 03:16
复位后,arm处理器处于什么模式
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-02-05 04:35
ARM 内核工作模式的切换是要自己写代码的, 设置CPSR 寄存器低5位进行切换
0b10001 快速中断模式
0b10010 中断模式
0b10011 管理模式
0b10111 中止模式
0b11011 未定义
0b11111 系统模式
以下代码就是切换CPU工作模式的示例
;********** Begin init stact ***********/
;在6种模式下切换并设置堆栈指针
MRS R0,CPSR ;把CPSR读取到R0
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Fiq ;设置R1 为0b10001
ORR R0,R0,R1 ;R0和R1相或,设置低5位
MSR CPSR_c,R0 ;把R0的值重新赋值到CPSR
LDR SP,=Stact_Fiq
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Irq
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Irq
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Svc
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Svc
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Abort
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Abort
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Undef
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Undef
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Sys
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Sys
0b10001 快速中断模式
0b10010 中断模式
0b10011 管理模式
0b10111 中止模式
0b11011 未定义
0b11111 系统模式
以下代码就是切换CPU工作模式的示例
;********** Begin init stact ***********/
;在6种模式下切换并设置堆栈指针
MRS R0,CPSR ;把CPSR读取到R0
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Fiq ;设置R1 为0b10001
ORR R0,R0,R1 ;R0和R1相或,设置低5位
MSR CPSR_c,R0 ;把R0的值重新赋值到CPSR
LDR SP,=Stact_Fiq
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Irq
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Irq
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Svc
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Svc
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Abort
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Abort
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Undef
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Undef
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Sys
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Sys
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-02-05 05:46
arm处理器复位后处于arm状态.
即:工作于32位指令的状态,所有指令均为32位。
满意请采纳。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯