这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于ro,rw问题

共3条 1/1 1 跳转至

关于ro,rw问题

菜鸟
2005-09-13 23:44:32     打赏

LDR r0, =|Image$$RO$$Limit|
LDR r1, =|Image$$RW$$Base|
LDR r3, =|Image$$ZI$$Base|


CMP r0, r1
BEQ %F1
0
CMP r1, r3
LDRCC r2, [r0], #4
STRCC r2, [r1], #4
BCC %B0
1
LDR r1, =|Image$$ZI$$Limit|
MOV r2, #0
2
CMP r3, r1
STRCC r2, [r3], #4
BCC %B2

这段代码有些地方看不明白,请大家帮忙解答:

我的理解是,首先,比较ro-limit和rw-base,如果小于(不可能大于),再比较rw-base和zi-base,如果小于说明存在rw区,此时,把(rw-base - ro-limit)之间的数据复制到rw-base地址起始的区域,然后再零初始化。

我看到书上只是说rw区从ROM到RAM的复制,但是复制的部分为什么是(rw-base - ro-limit)之间的数据?




关键词: 关于     问题    

菜鸟
2005-09-14 21:57:00     打赏
2楼

是从ro-limit开始的长度为rw的数据复制,

ro = ro-limit - ro-base, rw = rw-limit - rw-base是否正确,

而ro段包含ro-data和ro-code,那么ro-limit起始的地址中数据是什么?是否为ro-data?


菜鸟
2005-09-16 05:51:00     打赏
3楼

我的理解是加载时ro和rw连续分布在rom中,运行时ro还在rom中,而rw复制到ram中,

但是程序执行前rw的大小是如何确定的?这段代码不是相当于已经知道了rw的大小,再进行复制?rw复制和zi初始化在bootloader中是必须有的吗?如果不是,有其他方法替代吗?

感谢两位的回答!!!


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]