最近要在自己做的板子的DDR2中跑程序了,遇到了一些问题,求帮忙分析:
1.测试程序为运行在ARM端的一个简单的跑马灯例程,用仿真器加载GEL文件(主时钟300M,DDR2时钟150M)LOAD程序,运行正常,固化后运行也正常。经过长时间和多次测试程序运行稳定。
2.在程序中定义一个大约1500字节或以上的数组,并对其简单赋值,用仿真器跑时:加载运行完GEL文件,再LOAD完程序后,程序就直接运行了,只有停止运行有效。点停止后,发现停下的地址不在DDR2有效地址范围内,感觉程序没有正常运行而是跑飞了,程序固化后不运行。把数组大小改小一些,就运行正常了。
3.在ARM端对DDR2测试,先对其写入数据再读出,都正确。
请教一下大家,这种现象是什么原因,该怎么查或是解决。
noaming:
首先要单步下调试一下程序,如果加载后直接就运行,则可以使用Go main,从开头开始调试
noaming:
另外,可以检查一下debug configuration设置,这里可以设置为加载程序后,停止在main函数开头,而不是直接运行
robieson robieson:
回复 noaming:
试过了还是不行,加载程序后"运行”和“暂停”按钮都是灰色。
noaming:
回复 robieson robieson:
那可能是软件CCS的问题