打印

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

[复制链接]
2308|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并跳转到那里运行


如果有JTAG,可以直接把代码copy到SDRAM并Run

使用特权

评论回复
板凳
l0p0c| | 2008-10-31 17:22 | 只看该作者

这一块就是好难弄!

使用特权

评论回复
地板
微风| | 2008-10-31 23:55 | 只看该作者

其实认真想想就明白了

将RO BASE设置在哪个地址,程序就需要放在那个地址才能正常运行。你在ads里面把ro base 设置为0x00000000,那么2410启动起来的时候会将你的程序复制到以0x00000000地址开始的4k片内SRAM中(Steppingstone),所以能正常跑起来。

使用特权

评论回复
5
benky502|  楼主 | 2008-11-1 12:33 | 只看该作者

SDRAM与SRAM有啥区别?

SRAM是片内的4K空间,那SDRAM又是指啥?

使用特权

评论回复
6
wangkj| | 2008-11-1 12:38 | 只看该作者

sdram更复杂,容量更大。

使用特权

评论回复
7
yatelanda| | 2008-11-3 17:43 | 只看该作者

关键在于PC指针

首先明白一点, PC指针复位后指向0x0, 让PC指针指向0x30000000, 那么你的程序就可以在哪里跑了. 如果那里没有程序, 就会跑飞.


怎样才能不跑飞? 一是SDRAM已经被初始化,二是程序已经被加载到那里,三是程序的运行时域要吻合。

实现以上三点就等于造就一个boot loader. 

使用特权

评论回复
8
playlinus| | 2008-11-3 21:10 | 只看该作者

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

使用特权

评论回复
9
taosha126| | 2008-11-7 02:06 | 只看该作者

受教了啊

学到了啊!

使用特权

评论回复
10
yulri| | 2010-10-5 09:33 | 只看该作者
学习了,学习!:victory:

使用特权

评论回复
11
yulri| | 2010-10-5 09:49 | 只看该作者
高人多指教啊!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝