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