請教書中sdram裸機代碼
memsetup:
mov r1, #MEM_CTL_BASE
adrl r2,mem_cfg_val
add r3, r1,#52
1:
ldr r4, [r2],#4
str r4, [r1],#4
cmp r1,r3
bne 1b
mov pc,lr
mem_cfg_val:
.long 0x22011110
.long 0x00000700
.long 0x00000700
······
書中的SDRAM裸機例子,爲什麼adrl r2,mem_cfg_val這裏不用ldr r2,=mem_cfg_val,雖然說adrl是相對尋址,ldr是絕對尋址,但是我感覺效果一樣,請教大家,謝謝
mov r1, #MEM_CTL_BASE
adrl r2,mem_cfg_val
add r3, r1,#52
1:
ldr r4, [r2],#4
str r4, [r1],#4
cmp r1,r3
bne 1b
mov pc,lr
mem_cfg_val:
.long 0x22011110
.long 0x00000700
.long 0x00000700
······
書中的SDRAM裸機例子,爲什麼adrl r2,mem_cfg_val這裏不用ldr r2,=mem_cfg_val,雖然說adrl是相對尋址,ldr是絕對尋址,但是我感覺效果一樣,請教大家,謝謝
回覆:請教書中sdram裸機代碼
如果是用ldr r2,=mem_cfg_val,那麼r2的值應該是0x3xxxxxxx,它位於SDRAM中;
但是剛啓動系統時,SDRAM尚未被初始化,裏面的數據是隨機的;
你貼的這段代碼,是用來初始化SDRAM的
但是剛啓動系統時,SDRAM尚未被初始化,裏面的數據是隨機的;
你貼的這段代碼,是用來初始化SDRAM的