现在配置从NOR FLASH(8位)引导启动,由NOR搬运到片内共享RAM(0x80000000)的情况可以正常引导并执行后续应用程序,在调整为由NOR搬运到DDR2(0xC0000000)时程序运行出现异常。
待测试的应用程序是一个简单的点灯程序,这段代码通过仿真器直接下载到DDR2在线仿真是可以正常执行的(当然上述在线仿真是需要GEL文件完成PLL与DDR2接口配置)。如下图:
现在程序烧写进去没有反应,AIS工具在由“NOR搬运到片内共享RAM”到“NOR搬运到DDR2”做了如下调整:
1 新增开启了PSC1的6(对应DDR2);
2 新增开启了DDR2寄存器配置;
3 新增开启了PLL1寄存器配置;
咨询两个问题:
1 上述过程是否存在明显问题;
2 在引导出现异常的情况下,有什么推荐的调试方式?(用的CCS6)
countryhotel:
用仿真器连接后发现指令停在“0x717514”处,是DSP片内ROM,感觉还在执行出厂前固化的那一段BOOT代码
Tony Tang:
countryhotelAIS工具在由“NOR搬运到片内共享RAM”到“NOR搬运到DDR2”
这是怎么做的?改的cmd文件?
countryhotel2 在引导出现异常的情况下,有什么推荐的调试方式?(用的CCS6)
连上仿真器(不带gel)看DDR能否正确读写。
countryhotel:
回复 Tony Tang:
countryhotelAIS工具在由“NOR搬运到片内共享RAM”到“NOR搬运到DDR2”
这是怎么做的?改的cmd文件?
是的,在CMD程序内将所有section由片内共享RAM全部替换映射到DDR2的地址区间。
countryhotel2 在引导出现异常的情况下,有什么推荐的调试方式?(用的CCS6)
连上仿真器(不带gel)看DDR能否正确读写。
好像不行,程序卡在“0x7xxxxx”,像是片内rom的空间
Tony Tang:
回复 countryhotel:
countryhotel好像不行,程序卡在“0x7xxxxx”,像是片内rom的空间
我知道你停在ROM,我的意思是你在memory view里改写DDR空间看能否成功。
countryhotel:
回复 Tony Tang:
刚用仿真器读写DDR,不正常
Tony Tang:
回复 countryhotel:
#1. PSC里不要使能DDR。前面配置DDR参数部分已经使能了。
#2. 检查DDR参数以及DDR时钟是否配对了。
countryhotel:
回复 Tony Tang:
#1. PSC里不要使能DDR。前面配置DDR参数部分已经使能了。
这是指AIS工具配置时,不要再在PSC内配置PSC1的6(对应DDR2)?还是我们自身的应用程序内不需重复开启PSC1的6?
#2. 检查DDR参数以及DDR时钟是否配对了。
时序参数在GEL和代码内我都试过,能正常读写。PLL1与DDR时钟配置如下图:
countryhotel:
回复 Tony Tang:
感谢,我再仔细检查,多试试。
countryhotel:
回复 Tony Tang:
考虑下面的思路是否正确:
使用NOR到DDR2的程序引导路径后,在应用程序中可以不再进行重复的PLL与DDR模块配置,在AIS工具内直接将相关参数配置为适合最终应用场景即可。