这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » ads求助,关于地址映射

共9条 1/1 1 跳转至

ads求助,关于地址映射

菜鸟
2005-06-27 17:38:31     打赏

各位大侠:

我用的时s3c2410,ads1.2

依据我的理解:如果是在flash中,RO. RW .ZI三个区应该是连续存放在由0x00000000开始的区域;如果假设为了速度要求,运行时需要把这三个段的东西都搬进ram中,那么运行时,我们需要把三个段的代码都搬至预先设定的区域。

如果理解正确,是否说明在ads中设置的RO,RW 区的地址只是搬运到ram中的地址,而与flash无关。

更进一步说,如果我的RO段的代码要在flash中运行不做搬移,那我应该把RO地址设为0x00000000,如果我的RO段代码要在ram中运行,那我应该把地址设为0x30000000后的某个地址。




关键词: 求助     关于     地址     映射    

菜鸟
2005-06-27 18:28:00     打赏
2楼
你的理解是正确的。

菜鸟
2005-06-27 21:42:00     打赏
3楼

再请问一下:我在看bootloader的时候,看到它代码中有一段

; 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

将地址0的代码搬运64k到目的地址去,如果上面我的理解正确,那假设我的bootloader在norflash中,开机运行0x00000000,什么时候代码调入ram中,并跳转到ram中运行,上面的这段代码怎么解释呢?

是否应该这么说,ads只是指定了一个地址范围,从0x30000000(我指定的)开始,不规定你具体怎么放,由各自的程序完成放的工作,但是程序中的目的地址跟ads中指定的必须一致


菜鸟
2005-06-28 00:40:00     打赏
4楼

作为BOOTLOADER,RO_BASE必须指定=0x0,这样上电后才能执行。 在你的程序的开始部分,并不需要使用到RW段里的数据,所以在程序的开始,在RW段被拷贝到RAM之前,程序运行可以正常运行的。但为了保证后面的程序能正常访问RW段,你必须在访问之前把RW段拷贝到合适的位置去。


菜鸟
2005-06-30 22:56:00     打赏
5楼

同意楼上的高见。

启动时,r0_base=0X0,此后是搬移rw段,如果在ram中运行代码,就搬移代码,以后跳到此运行。


菜鸟
2005-07-05 01:36:00     打赏
6楼
以下是引用twentyone在2005-6-27 16:40:00的发言:

作为BOOTLOADER,RO_BASE必须指定=0x0,这样上电后才能执行。

这句话我觉得有问题,上电后的确是从0开始的,这和ro_base的数值无关。

菜鸟
2005-07-05 01:55:00     打赏
7楼
以下是引用moto60000在2005-7-4 17:36:00的发言: 这句话我觉得有问题,上电后的确是从0开始的,这和ro_base的数值无关。

那你说一下你的理解,这个问题困扰我很久了


菜鸟
2005-07-05 03:07:00     打赏
8楼

ro_base、rw_base等只是个符号值,可以在汇编代码中引用,将bootloader部分代码和数据从flash中copy到ram中就用到了这几个值,如果程序中不涉及rw数据,那么程序就可以完全在flash中运行,也就不必copy了,那么ro_base和rw_base在程序中可能根本就没有派上用场,那么,你随便设置其为任何值都没有关系。当然一般程序没有那么简单的,只要你有全局变量,那么它就被编译到了rw输出段了,不过,我觉得,如果这个全局变量,你没有对它进行写操作,那么引用到它的代码应该一样可以在flash中正确运行。偶本来是java和.net程序员,刚刚接触arm不长时间,业余选手,请高手指教!


菜鸟
2005-07-05 03:16:00     打赏
9楼

http://bbs.edw.com.cn/dispbbs.asp?boardid=20&star=1&replyid=162369&id=27980&skin=0&page=1

惭愧,我还是看到了twentyone大侠的帖子才有所悟的,他的那片帖子通俗易懂,给我帮助很大。不知你看过没有?


共9条 1/1 1 跳转至

回复

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