1、ARM启动流程回顾
2440:启动时,Nand Flash自动拷贝4k的内容到stepping stone中(SRAM)。
利用4k内存代码,拷贝剩余的启动代码从nand flash到内存。
6410:4k变8k
210:BL0三星固定烧好了的,Nand flash(bootload) -->iRam(96kb)
再剩下的拷贝进内存。
2、代码搬移编程
1.起点
sRam(芯片中的地址0x0)
2.终点
连接器脚本(_start中的地址。内存的地址)
3.搬移方式
-
copy_to_ram:
-
ldr r0, =0x0 搬移的起点
-
ldr r1, =0x30008000 搬移的终点(内存地址)
-
add r3, r0, #1024*4 搬移的最后地址
-
copy_loop:
-
ldr r2, [r0], #4 将r0指向的内容存到r2中,r0往下移4位
-
str r2, [r1], #4 将r2中的内容存到r1指向的地址中,r1往下移4位
-
cmp r0, r3 比较r0,r3的地址是否一致
-
bne copy_loop 如果不一致
-
mov pc, lr 返回到bl copy_to_ram
阅读(627) | 评论(0) | 转发(0) |