Uboot之三 ~~~CPU的配置

預備知識:理解跳轉指令b和ldr,其形式如下:

b step1              //B 是最簡單的分支。一旦遇到一個 B 指令,ARM 處理器將立即跳轉到給定的地址,從那裏繼續執行。

                            注意存儲在分支指令中的實際的值是相對當前的 R15(PC) 的值的一個偏移量,而不是一個絕對地址。

                           它的值由彙編器來計算,它是 24 位有符號數,左移兩位後有符號擴展爲 32 位,表示的有效偏移爲 26 位(+/- 32 M)。

ldr pc,step2  //使用LDR僞指令將一個常量讀取到非PC的其他通用寄存器中可實現位置無關的常 量訪問;

                             但將一個地址值讀取到PC中進行程序跳轉時,跳轉目標則是位置相關的。

對彙編不是很瞭解,以上內容參看好多資料寫的,也不知道對不對,期望大俠的指點。

 

 

找到文件的入口

# vi /arch/arm/cpu/arm920t/start.S

 

#include <common.h>   //定義了關於錯誤處理的一些操作
#include <config.h>   
 
.globl _start
_start:	b	start_code   //定義了入口
	ldr	pc, _undefined_instruction
	ldr	pc, _software_interrupt
	ldr	pc, _prefetch_abort
	ldr	pc, _data_abort
	ldr	pc, _not_used
	ldr	pc, _irq
	ldr	pc, _fiq

_undefined_instruction:	.word undefined_instruction
_software_interrupt:	.word software_interrupt
_prefetch_abort:	.word prefetch_abort
_data_abort:		.word data_abort
_not_used:		.word not_used
_irq:			.word irq
_fiq:			.word fiq

	.balignl 16,0xdeadbeef

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章