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.搬移方式
阅读(32) | 评论(0) | 转发(0) |
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
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
给主人留下些什么吧!~~
评论热议