搜索
bottom↓
回复: 7

s3c2440启动代码从flash拷贝到SDRAM上后,地址重映射是怎样的!一直搞不明白这问题!请各

[复制链接]

出0入0汤圆

发表于 2010-12-20 21:36:03 | 显示全部楼层 |阅读模式
最近正在看S3C2440自带的2440init.s中的启动文件,有一点总是理解不了,请各位侠客指点~在些谢过了~~

ARM启动时总是从0X000地址开始,然后执行到一定程序就把Flash里的启动代码拷贝到SDRAM上来(如:0x30000000),然后PC跳到SDRAM上来继续执行,此时中断向量表也在SDRAM上的0x30000000~0x30000020上了,那在启动程序执行完,假如这时发生IRQ中断,CPU将直接跳到0X00000018处执行,但此时应跳到0x30000018处执行才对。这个实现好像是通过内存重映射机制来实现,可是我看2440init.s的对flash拷贝代码到SDRAM上后没有相关的重映射操作。那发生中断时是怎样跳到SDRAM中的中断向量表来执行的呢!?内存重映射的要怎样做呢,是设置相关寄存器吗?
这两三天都没搞明白这个问题。郁闷~~~请侠客们拨刀相助!!!!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-4-20 19:21:22 | 显示全部楼层
我和你有同样的疑问,ATMEL的芯片中有相关寄存器的映射设置。不知道S3C2440中是怎么运行的,难道必须启动MMU的功能?

出0入0汤圆

发表于 2011-4-25 05:26:19 | 显示全部楼层
我也想了半天才明白,原因貌似很简单 - -
还是那4K启动内存,硬件已经帮我们拷贝了...程序链接地址ROBASE是0x30000000,实际我们编译的程序入口地址在0x30000000起始位置,而且中断向量表的指令与地址无关,启动后硬件自动拷贝了前4k程序,刚好与ARM中断向量位置一样,所以不需要地址重映射到0x30000000,里面的跳转地址是0x30000000位置后的中断服务程序。所以程序运行后,那4K内存存储了中断向量,不能修改...至少中向量断。。。。

下面是mini2440 test 代码的地址连接设置,可以看到,链接地址并不是从0开始的。。

mini2440 编译地址 (原文件名:搜狗截图_2011-04-25_05-21-20.png)

出0入0汤圆

发表于 2011-7-9 05:13:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-9 15:27:58 | 显示全部楼层
2楼正解,通过编译器设置的

出0入0汤圆

发表于 2011-9-26 23:25:14 | 显示全部楼层
回复【2楼】xiaowei061
-----------------------------------------------------------------------

追问一下:你的意思是,把程序下载到nand flash后,从stepstone(0地址)启动,硬件自动把前4K程序copy到链接地址开始的区域了。如果是这样,为什么韦东山《嵌入式LINUX应用完全开发手册》中对sdram的裸机实验中还需要拷贝前4K数据到sdram这一步呢?这是不是多余呢?
我现在有两个版本的理解:
第一,就是如你所说的,只要指定了链接地址,那么拷贝代码到链接地址的工作就不需要我们来做了,想不通的就是韦东山那个拷贝的必要性;
第二,程序一开始应该是在stepstone那里运行,直到这部分程序把数据copy到sdram后,并且mov pc, =on_sdram后,才真正在sdram上面运行。但如果是这样的话,也存在问题:指定链接地址后,应该所有label都以这个地址为基准的,在数据拷贝之前,也会用到label来做跳转,比如关闭看门狗、禁用中断等子程序。那用到这些label不就链接到sdram后面的地址去了?这时sdram还没有拷贝到数据哦。

出0入0汤圆

发表于 2011-9-27 23:36:09 | 显示全部楼层
经过网上的资料,终于明白,第二种理解是正确的,但这样不会跳错地址,因为B、BL这些跳转指令是与地址无关的,只是算偏移量来调整。

出0入0汤圆

发表于 2012-10-25 22:53:16 | 显示全部楼层
呵呵,谢谢解释!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 22:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表