裸跑2410的问题——关于ro base设置的疑问,谢谢!

[复制链接]
3454|10
 楼主| benky502 发表于 2008-10-31 09:30 | 显示全部楼层 |阅读模式
se, mb, ADS, sd, TE
问个裸跑2410的问题:我的程序是下载到nand flash(k9s1208,容量为64MB)里面运行的,按照书上的说明,64MB的sdram,地址范围为0x30000000~0x33ffffff,应该把ads里面的ro base设置成0x30000000,我看了我的板的资料——SDRAM:64Mbyte(32Mbyte*2),于是我就把ro base 设置为0x30000000,可是程序跑不起来(流水灯没反应),而我在ads里面把ro base 设置为0x00000000,程序下载运行结果就正常了,请问这是为什么?是否跟om[1:0]的设置有关系?我的om[1:0]是打到on状态的.请各位指教,谢谢!
seekfor 发表于 2008-10-31 13:49 | 显示全部楼层

详细见内容

当你要在SDRAM上跑的时候,RO_BASE必须设置为SDRAM地址,此时需要一个bootloader(RO_BASE地址为ROM地址)把数据拷贝到SDRAM并跳转到那里运行<br /><br /><br />如果有JTAG,可以直接把代码copy到SDRAM并Run
l0p0c 发表于 2008-10-31 17:22 | 显示全部楼层

这一块就是好难弄!

  
微风 发表于 2008-10-31 23:55 | 显示全部楼层

其实认真想想就明白了

将RO&nbsp;BASE设置在哪个地址,程序就需要放在那个地址才能正常运行。你在ads里面把ro&nbsp;base&nbsp;设置为0x00000000,那么2410启动起来的时候会将你的程序复制到以0x00000000地址开始的4k片内SRAM中(Steppingstone),所以能正常跑起来。
 楼主| benky502 发表于 2008-11-1 12:33 | 显示全部楼层

SDRAM与SRAM有啥区别?

SRAM是片内的4K空间,那SDRAM又是指啥?
wangkj 发表于 2008-11-1 12:38 | 显示全部楼层

sdram更复杂,容量更大。

  
yatelanda 发表于 2008-11-3 17:43 | 显示全部楼层

关键在于PC指针

首先明白一点,&nbsp;PC指针复位后指向0x0,&nbsp;让PC指针指向0x30000000,&nbsp;那么你的程序就可以在哪里跑了.&nbsp;如果那里没有程序,&nbsp;就会跑飞.<br /><br /><br />怎样才能不跑飞?&nbsp;一是SDRAM已经被初始化,二是程序已经被加载到那里,三是程序的运行时域要吻合。<br /><br />实现以上三点就等于造就一个boot&nbsp;loader.&nbsp;
playlinus 发表于 2008-11-3 21:10 | 显示全部楼层

楼上是高人,以后请多赐教...

  
taosha126 发表于 2008-11-7 02:06 | 显示全部楼层

受教了啊

学到了啊!
yulri 发表于 2010-10-5 09:33 | 显示全部楼层
学习了,学习!:victory:
yulri 发表于 2010-10-5 09:49 | 显示全部楼层
高人多指教啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部