dram 片选ce0,4M*16
以下是部分程序:
main()
{
/*初始化CSL库*/
CSL_init();
/*EMIF为全EMIF接口*/
CHIP_RSET(XBSR,0x0a01);
/*设置系统的运行速度为144MHz*/
PLL_config(&myConfig);
/*初始化DSP的外部SDRAM*/
EMIF_config(&emiffig);
/*向SDRAM中写入数据*/
souraddr = (int *)0x40000;
deminaddr = (int *)0x41000;
while(souraddr<deminaddr)
{
*souraddr++ = datacount;
datacount++ ;
}
,,,,,,,,,,
.........
以上程序读写sdram 都是正确的 如图1
但是 如果我把字地址 改成
souraddr = (int *)0x200000;
deminaddr = (int *)0x201000;
memory空间数据 如图2
问题 1: 请问这是什么原因呢,如上?
问题 2 :因为sdram是4M*16的 占用了 ce0 ce1空间(好像也占用了点ce2),硬件片选是接的ce0, 当读写占用的ce1空间地址的时候 此刻emif的配置函数中 不用管ce1?ce0一直是使能的吗?
问题 3: ce0,ce1,ce2 是不是可以同时使能呢?
|