经过剖析start.S代码,学习ARM体系结构是一种很好的办法。
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的值一般出于几个意图:
- 改动condition code标志
- 使能/制止中止
- 改动处理器形式
- 改动load或store操作的字节序
- 改动处理器状况(J and T)
待续。。。。。。