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

共3条 1/1 1 跳转至

ro.rw 地址的问题

菜鸟
2005-06-27 23:52:25 打赏

各位大侠:

我们在使用ads的时候会指定ro.rw的地址,但是小弟实在想不出这个地址有什么用处。比如s3c2410的bootloader,如果下载到flash中,肯定是在从0x00000000开始的最大64k的空间,包括:ro.rw.zi三个连续的输出段。开机后从0x00000000开始运行,程序中有搬运flash中相关代码到ram中,具体地址在代码中也有指明,如下:

; for ROM image // check LOCK TIEM ldr r0, =LOADER_SRAM_BASE ; source address, rom:0x0000 0000 ldr r1, =LOADER_DRAM_BASE ; destination address ldr r2, =LOADER_SRAM_MAX_SIZE ; block size (under 1MB, 0x0001 0000), 64 KB 2 ldr r3, [r0], #4 str r3, [r1], #4 subs r2, r2, #4 bne %b2

这样一来,是在想不出ads中ro.rw的作用。开始想是rw.ro值的设定是指明相应段在ram中地址,ro指明ro段的开始地址,程序中相应的部分(也就是搬运flash中代码到ram)必须跟设定的地址相吻合,但是试了一下好像不设定ro地址一样可以用

疑惑ing,请高手指点一二




关键词: ro.rw 地址 问题

菜鸟
2005-06-28 00:37:00 打赏
2楼
将RW段搬运到RAM的时候不是就要用到RW_BASE了吗? 你把R0_BASE设置为0x10000008,看看程序还能不能运行(指的不是不是仿真,直接上电运行)

菜鸟
2005-06-28 18:56:00 打赏
3楼
是不是可以这样说,ro_BASE是用来绝对定位的,如果我要在falsh中运行,必须把它设置为0x00000000,这样在进行定位的时候,编译程序才知道。如果我要在ram中调试,那么我要把它设为0x30000000(ram的地址)。其实我编译出来的.bin文件都会是ro.rw.zi三段连续的一个文件,但是我实验的结果好像时不管ro_BASE怎么设,编出来的.bin都一样。那么我通过jtag口把该.bin下进flash中运行的效果都是一样的啊。

共3条 1/1 1 跳转至

回复

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