SDRAM调试遇到的怪事,难道哪里还有机关 ?

[复制链接]
3396|9
 楼主| ewq_022 发表于 2007-7-16 10:24 | 显示全部楼层 |阅读模式
我有两块44B0的板子,两个板子不同,一个是买的开发板,另一个是自己做的.M0--M3的配置SDRAM&nbsp;的接线都同.用开发板调试时没有问题.同一个跑马灯程序,RO地址设置成SDRAM&nbsp;地址&nbsp;0x0c008000,&nbsp;调试开发板的时候SDRAM&nbsp;中内容是:<br /><br />0x0c008000&nbsp;&nbsp;25&nbsp;01&nbsp;00&nbsp;EA&nbsp;5D&nbsp;00&nbsp;00&nbsp;EA&nbsp;62&nbsp;00&nbsp;00&nbsp;EA&nbsp;6D&nbsp;00&nbsp;00&nbsp;EA&nbsp;%...]...b...m...<br />0x0c008010&nbsp;&nbsp;66&nbsp;00&nbsp;00&nbsp;EA&nbsp;FE&nbsp;FF&nbsp;FF&nbsp;EA&nbsp;52&nbsp;00&nbsp;00&nbsp;EA&nbsp;4B&nbsp;00&nbsp;00&nbsp;EA&nbsp;f.......R...K...<br />0x0c008020&nbsp;&nbsp;BC&nbsp;F0&nbsp;9F&nbsp;E5&nbsp;BC&nbsp;F0&nbsp;9F&nbsp;E5&nbsp;BC&nbsp;F0&nbsp;9F&nbsp;E5&nbsp;BC&nbsp;F0&nbsp;9F&nbsp;E5&nbsp;................<br />0x0c008030&nbsp;&nbsp;BC&nbsp;F0&nbsp;9F&nbsp;E5&nbsp;BC&nbsp;F0&nbsp;9F&nbsp;E5&nbsp;FE&nbsp;FF&nbsp;FF&nbsp;EA&nbsp;FE&nbsp;FF&nbsp;FF&nbsp;EA&nbsp;................<br /><br /><br />看上去很正常.可是调试自己的板的时候SDRAM&nbsp;中显示:<br /><br />0x0c008000&nbsp;&nbsp;01&nbsp;01&nbsp;EA&nbsp;EA&nbsp;00&nbsp;00&nbsp;EA&nbsp;EA&nbsp;00&nbsp;00&nbsp;EA&nbsp;EA&nbsp;00&nbsp;00&nbsp;EA&nbsp;EA&nbsp;................<br />0x0c008010&nbsp;&nbsp;00&nbsp;00&nbsp;EA&nbsp;EA&nbsp;FF&nbsp;FF&nbsp;EA&nbsp;EA&nbsp;00&nbsp;00&nbsp;EA&nbsp;EA&nbsp;00&nbsp;00&nbsp;EA&nbsp;EA&nbsp;................<br />0x0c008020&nbsp;&nbsp;F0&nbsp;F0&nbsp;E5&nbsp;E5&nbsp;F0&nbsp;F0&nbsp;E5&nbsp;E5&nbsp;F0&nbsp;F0&nbsp;E5&nbsp;E5&nbsp;F0&nbsp;F0&nbsp;E5&nbsp;E5&nbsp;................<br />0x0c008030&nbsp;&nbsp;F0&nbsp;F0&nbsp;E5&nbsp;E5&nbsp;F0&nbsp;F0&nbsp;E5&nbsp;E5&nbsp;FF&nbsp;FF&nbsp;EA&nbsp;EA&nbsp;FF&nbsp;FF&nbsp;EA&nbsp;EA&nbsp;................<br /><br /><br />说明一下:以上数据都是刚LOAD&nbsp;IMAGE之后的显示,程序还没有执行.我用的SDRAM&nbsp;都是16位的.<br /><br />看看两个板子的SDRAM&nbsp;控制器显示吧.:<br /><br />开发板中显示:0x01c80000&nbsp;&nbsp;02&nbsp;11&nbsp;00&nbsp;01&nbsp;F4&nbsp;7F&nbsp;00&nbsp;00&nbsp;40&nbsp;0A&nbsp;00&nbsp;00&nbsp;80&nbsp;14&nbsp;00&nbsp;00&nbsp;.......@.......<br /><br />我的板中显示:0x01c80000&nbsp;&nbsp;02&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;07&nbsp;00&nbsp;00&nbsp;00&nbsp;07&nbsp;00&nbsp;00&nbsp;00&nbsp;07&nbsp;00&nbsp;00&nbsp;................<br /><br />0x01c80000中是SDRAM&nbsp;控制器&nbsp;的位宽配置.我的板中显示的值跟手册中的复位值一样(默认为8位宽).而开发板中显示的值是我希望的值(16位宽).这个时候程序还没有执行.我就不明白,我的开发板是怎么知道SDRAM配置的?难道哪里有机关?<br /><br />如果强制把0x01c80000中内容修改成希望的值之后.再LOAD&nbsp;IMAGE&nbsp;.结果就跟开发板一样了.程序也能调试了.<br /><br />大哥们,都分析一下是哪的原因呀!
mybao 发表于 2007-7-16 12:20 | 显示全部楼层

你的开发板的FLASH本身就有程序

上电就初始化了。<br /><br />
xzl 发表于 2007-7-16 12:44 | 显示全部楼层

是呀,你要看好DATASHEET中的芯片配置要求

  
 楼主| ewq_022 发表于 2007-7-16 13:04 | 显示全部楼层

这个解释很有道理

这个解释很有道理.因为我的开发板中有程序,而我自己的板中还没有焊FLASH.自然产生这个结果.那要是这么说,如果要在SDRAM中调试一个程序,还要保证FLASH中烧有初始化程序才行????不然LOAD&nbsp;IMAGE&nbsp;就不通过呀.
 楼主| ewq_022 发表于 2007-7-16 21:58 | 显示全部楼层

还在问中.再顶一顶

如果要在SDRAM中调试一个程序,还要保证FLASH中烧有初始化程序才行????不然LOAD&nbsp;IMAGE&nbsp;就不通过呀.<br />
sjnh 发表于 2007-7-17 08:09 | 显示全部楼层

如果FLASH中没有初始化程序

你要在调试环境中手工设置一些寄存器,例如SDRAM的控制寄存器等
wangkj 发表于 2007-7-17 08:30 | 显示全部楼层

看我以前的帖子,关于4510的,大约1年前吧。

  
农民讲习所 发表于 2007-7-17 11:33 | 显示全部楼层

地址线A0有问题,查PCB

  
mxh0506 发表于 2007-7-17 12:16 | 显示全部楼层

看来楼主还没搞明白调试时的必要步骤

根据你所使用的开发环境,要写一段初始化硬件的脚本<br />我记得IAR里是.mac,&nbsp;ADS很久没用了,应该是.ini吧
 楼主| ewq_022 发表于 2007-7-17 16:57 | 显示全部楼层

原来还真的有猫腻

脚本我还真不知道.我一般都是看网上的一些教程.没看着有什么脚本,研究研究吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

54

帖子

1

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