ARM體系架構學習 -uboot分析之start.S
start.S是u-boot的關鍵部分,CPU上電后最先開始執(zhí)行的代碼,和ARM體系結構息息相關。
本文引用地址:http://www.biyoush.com/article/201611/317815.htm通過查閱代碼中遇到的各種指令,來進一步了解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寄存器中的內(nèi)容保存到通用寄存器中,在這里是r0,就是說CPSR(當前程序狀態(tài)寄存器)必須使用MRS這條指令才能讀取
CPSR:當前程序狀態(tài)寄存器,保存了CPU當前的各種狀態(tài),另外還有一個SPSR(保存的程序狀態(tài)寄存器),是在異常處理前對CPSR的保存。
CPSR的用途-改變CPSR的值通常出于幾個目的:
- 改變condition code標志
- 使能/禁止中斷
- 改變處理器模式
- 改變load或store操作的字節(jié)序
- 改變處理器狀態(tài)(J and T)
待續(xù)。。。。。。
評論