在找问题的时候,也在考虑是不是编译器的设置方面有问题:导致没有正确地初始化SDRAM。从而使程序没法运行。 把我的设置情况也说说,请大家帮忙看看:
这个设置是用于测试SDRAM的工程。
将代码下载到片内ram中执行,将数据写到片外的SDRAM,检查SDRAM能否正确写入和读出数据。
首先是地址范围:
然后是这个:
最后是.ini 文件当中添加了一段初始化SDRAM的代码:
_WDWORD(0xFFFFF804, 0xFFFF0000); // PIOC_PDR: Enable Peripheral Mode
_WDWORD(0xFFFFFF60, 0x00000002); // EBI_CSA: CSA1 support for SDRAM
_WDWORD(0xFFFFFF98, 0x22913959); // Init SDRAM 这个是我自己根据dadasheet改的
_WDWORD(0xFFFFFF90, 0x00000012);
// All-bank-precharge mode = 2 (0-3)
_WDWORD(0x20000000, 0);
_WDWORD(0xFFFFFF90, 0x00000014);
// refresh
_WDWORD(0x20000000, 0);
_WDWORD(0x20000000, 0);
_WDWORD(0x20000000, 0);
_WDWORD(0x20000000, 0);
_WDWORD(0x20000000, 0);
_WDWORD(0x20000000, 0);
_WDWORD(0x20000000, 0);
_WDWORD(0x20000000, 0);
// wait for 8 write clocks
_WDWORD(0xFFFFFF90, 0x00000013);
// Load Mode Register
_WDWORD(0x20000080, 0);
// ???
_WDWORD(0xFFFFFF94, 0x000002E0);
_WDWORD(0x20000000, 0);
_WDWORD(0xFFFFFF90, 0x00000000);
_WDWORD(0x20000000, 0);
有没有设置有误或者考虑不周的地方,请大大们指点一下。。。
|