|
本帖最后由 扫帚菜~~ 于 2012-10-24 22:35 编辑
最近在学、ARM的汇编,有很多问题想不明白比如以下几个
ARM 中什么是相对地址,什么是绝对地址?
启动代码中:
AREA Init,CODE,READONLY
ENTRY
ResetEntry ;在nandfalsh中和norflash中启动,此ResetHandler的地址分别是什么?
;怎么算的?
b ResetHandler
b HandlerUndef ;handler for Undefined mode
.
.
.
.
.
ResetHandler ; 在nandfalsh中和norflash中启动,此ResetHandler的地址分别是什么?
;怎么算的?
ldr r0,=WTCON ;watch dog disable
ldr r1,=0x0
str r1,[r0]
..........
bl InitStacks
;===========================================================
ldr r0, =BWSCON
ldr r0, [r0]
ands r0, r0, #6 ;OM[1:0] != 0, NOR FLash boot
bne copy_proc_beg ;do not read nand flash
adr r0, ResetEntry ;这个ResetEntry的地址是什么 cmp r0, #0 ;if use Multi-ice,
bne copy_proc_beg ;do not read nand flash for boot
;nop
;===========================================================
nand_boot_beg
bl RdNF2SDRAM
ldr pc, =copy_proc_beg;
;===========================================================
copy_proc_beg
adr r0, ResetEntry ;;在nandfalsh中和norflash中启动,此时这个地址分别是什么?
ldr r2, BaseOfROM
cmp r0, r2
ldreq r0, TopOfROM
beq InitRam
ldr r3, TopOfROM
另外加载域和运行域是什么?是相对址还是绝对地址,有什么资料是讲解这些东西的吗?ADS1.2编程给程序又是分配这个加载域又是分配那个地址的,我很想搞明白这些东西,在此先谢过了。
|
|