| 6# shufexiu 
 
 我想问下:如果我在NOR 中uBOOT界面中选择A 把程序烧写到NAND中,然后从NAND中启动,那么复位后PC是指向地址0处 还是指向|Image$$RO$$Base|。我记得我写了很简单的程序控制LED,烧写到NAND中,不管RO base设置成0或者0x3000000都能正常执行,为什么呢?如果设置成0x3000000,那么根据RO base得定义,程序应该从这个地址处开始执行啊,可是这个地址处有没有代码可以执行,简单程序如下IMPORT main
 AREA HEAD, CODE, READONLY
 ENTRY
 
 bl  disable_watch_dog               (1)
 bl  memsetup                      (2)
 bl  copy_steppingstone_to_sdram      (3)
 ld pc, =on_sdram
 on_sdram:
 ldr sp, =0x34000000
 bl  main
 halt_loop
 b   halt_loop
 
 disable_watch_dog
 
 mov r1,     #0x53000000
 mov r2,     #0x0
 str r2,     [r1]
 mov pc,     lr
 END
 还有为什么我RO base的地址设置成什么 我查看反汇编时第一条指令的地址就是什么 如果是0还好理解 但是如果是0x30000000,我就不理解了 我是烧写到NAND中的 怎么会从0X300000开始呢?
 
 还有对于RO base的地址的设置总是有疑惑:如果我把程序烧写到NAND中,如果程序中没有把代码复制到SDRAM中的代码段,那么我把地址设置成0X3000000可以吗,是不是只能设置成0。
 |