代码搬移

2440初始化:  一般我们都让芯片从Nandflash启动(Nandflash不参与统一变址),SRAM的前面4KB的容量把Nandflash里面前4KB字节的代码往里复制,然后如果Nandflash里面的代码量大于4KB,那么就把SRAM就把Nandflash里面剩余的代码复制进内存,然后再从内存里面启动。
copy_to_ram:
ldr r0, =0x00000000
ldr r1, =0x30008000
add r3, r0, #1024*4

copy_loop:
ldr r2, [r0], #4
str r2, [r1], #4
cmp r0, r3
bne copy_loop

mov pc, lr
 绝对跳转:就是直接给pc指针赋值  2440、6410、210的这部分代码不同之处在于,起始地址和结束地址。6410起始地址是0x0c000000,结束地址是0x50008000210起始地址是0xd0020010,结束地址是0x20008000 

相关内容推荐