微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > TQ2440国嵌学院gboot-设定CPU为svc模式

TQ2440国嵌学院gboot-设定CPU为svc模式

时间:11-26 来源:互联网 点击:
通过之前学习设定ARM的中断向量表,完成基本框架的设计,下面开始设定CPU到SVC模式(这里是指32位模式)。

同样是在ARM Architecture Reference Manual手册中,Exceptions的子目录下,找到对应的Reset模式:



关键部分我已标注红色,可以看到CPSR[4:0]=0b10011 ,通过备注我们可以知道通过设定CPSR寄存器的0-4位可以设定CPU进如SVC模式。CPSR寄存器的第6、7位是关闭快速中断和中断,在bootloader启动时同样关闭。也就是CPSR[0:7]=0b11010011=0xd3。代码如下:

reset:
bl set_svc//在reset下添加跳转指令bl,使用bl能够保留当前的地址到R14寄存器中,以便执行完子程序后返回

set_svc://这里是32位处理器,因此命令如下
mrs r0, cpsr//将cpsr寄存器装载到r0寄存器
bic r0, r0, #0x1f//bic完成位清除,将r0的后5位置0
orr r0, r0, #0xd3//将r0与0xd3(0b1101 0011)
msr cpsr, r0//重新将r0装载到cpsr中
mov pc, lr//返回到程序中

学习总结:

通过查询资料可以得到上面的一些信息,可以说明查询手册是十分重要,通过阅读手册中的一些注释得到想要的信息,其次掌握好指令的用法,对每一条指令都能掌握含义。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top