我使用Realview MDK uVision4 调试韦东山的SDRAM代码遇到一个问题。
就是下面这堆代码:
copy_steppingstone_to_sdram
;@ 将Steppingstone的4K数据全部复制到SDRAM中去
;@ Steppingstone起始地址为0x00000000,SDRAM中起始地址为0x30000000
mov r1, #0
ldr r2, =SDRAM_BASE
mov r3, #4*1024
one
ldr r4, [r1],#4 ;@ 从Steppingstone读取4字节的数据,并让源地址加4
str r4, [r2],#4 ;@ 将此4字节的数据复制到SDRAM中,并让目地地址加4
cmp r1, r3 ;@ 判断是否完成:源地址等于Steppingstone的未地址
bne one ;@ 若没有复制完,继续
mov pc, lr ;@ 返回
当代码循环到r1=0x48, r2=0x4C的时候,这两个值就不再改变了。
因此上也无法退出循环。
有做过的人,能否帮忙看看。