完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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 |
|
|
|
当arm处理器的复位电平有效时,产生复位异常,arm处理器立刻停止执行当前指令,程序跳转到复位异常程序处执行指令
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
124 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
506 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
710 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
634 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介
1225 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 16:39 , Processed in 0.587931 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号