打印

关于44b0的bootloader的疑问

[复制链接]
1607|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bbs_cq|  楼主 | 2007-11-8 10:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
44BINIT.S中有一段程序是:

;****************************************************
 ;计算拷贝程序在flash中的实际位置         *
 ;****************************************************
 ldr  r2, =CopyProcBeg
 sub  r1, r2, r1
 add  r0, r0, r1 
 ldr  r3, =CopyProcEnd
 
 ;****************************************************
 ;将拷贝程序复制到ram中        *
 ;****************************************************

 ldmia r0!, {r4-r7}
 stmia r2!, {r4-r7}
 cmp  r2, r3
 bcc  %B0 


  运行这段程序的时候,程序应该是在FLASH里面,那么ldr  r2, =CopyProcBeg 应该是得到的是CopyProcBeg在FLASH里面的地址啊,但是看程序的功能,是得到CopyProcBeg在RO_BASE为起始ram中的地址?怎么回事呢?各位指点一下啊....

相关帖子

沙发
bbs_cq|  楼主 | 2007-11-8 15:12 | 只看该作者

??

没人知道吗?

使用特权

评论回复
板凳
阿南| | 2007-11-8 18:21 | 只看该作者

是RO_BASE为起始ram地址

你的程序要想正确运行,必须被复制到RO BASE开始处,具体解释可以参考链接器部分

使用特权

评论回复
地板
bbs_cq|  楼主 | 2007-11-8 19:05 | 只看该作者

还是没有明白

我是在链接选项中设置了RO_BASE和RW_BASE的,但是按照程序执行的流程,在FLASH中的CopyProcBeg应该也是指向FLASH里面的某个地址啊.楼上能说明白点吗?

使用特权

评论回复
5
阿南| | 2007-11-8 19:19 | 只看该作者

首先您要明白RO、RW及ZI是什么、及其作用

您可以去精华区查看下面的帖子,或搜索以前的旧帖,祝您好运!

一点小小心得,请各位大大鉴定 
 wishcom 发表于 10/16/2007 7:32:17 PM ARM 论坛 ←返回版面    

自己的一点关于ARM可执行文件的生成规律总结。


https://bbs.21ic.com/upfiles/img/200710/20071016192946939.pdf
 
 

使用特权

评论回复
6
bbs_cq|  楼主 | 2007-11-8 19:50 | 只看该作者

to 阿南

太感谢你了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

17

帖子

0

粉丝