代码搬移不可少

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.搬移方式


  1. copy_to_ram:
  2.     ldr r0, =0x0                                  搬移的起点
  3.     ldr r1, =0x30008000                           搬移的终点(内存地址)
  4.     add r3, r0, #1024*4                           搬移的最后地址
  5. copy_loop:
  6.     ldr r2, [r0], #4                              将r0指向的内容存到r2中,r0往下移4位
  7.     str r2, [r1], #4                              将r2中的内容存到r1指向的地址中,r1往下移4位
  8.     cmp r0, r3                                    比较r0,r3的地址是否一致
  9.     bne copy_loop                                 如果不一致
  10.     mov pc, lr                                    返回到bl copy_to_ram


<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>
阅读(32) | 评论(0) | 转发(0) |
0

上一篇:内存初始化

下一篇:栈初始化

给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

习惯就好zz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值