start.S是u-boot的关键部分,CPU上电后最先开始执行的代码,和ARM体系结构息息相关。
通过查阅代码中遇到的各种指令,来进一步了解ARM体系结构中各个知识点。
/*
* the actual start code
*/
start_code:
/*
* set the cpu to SVC32 mode
*/
mrs r0,cpsr
bic r0,r0,#0x1f
orr r0,r0,#0xd3
msr cpsr,r0
红色字体是要查阅的
MRS:MRS是要将CPSR寄存器中的内容保存到通用寄存器中,在这里是r0,就是说CPSR(当前程序状态寄存器)必须使用MRS这条指令才能读取
CPSR:当前程序状态寄存器,保存了CPU当前的各种状态,另外还有一个SPSR(保存的程序状态寄存器),是在异常处理前对CPSR的保存。
CPSR的用途-改变CPSR的值通常出于几个目的:
待续。。。。。。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』