大家好 有一个问题想要请教 我用的是ADSP BF518的开发板 写了一个程序 在BF518的开发板上跑是没有问题的 但是我把64M的内存换为16M 相应的在工程选项External Memory 这个选项中改为16M 修改相应的SDRAM驱动
void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0xffc07bb0;
*pEBIU_AMGCTL = 0x000f;
}
void Init_SDRAM(void)
{
*pEBIU_SDRRC = 0x019f; //SDRAM 刷新率控制
asm("SSYNC;");
*pEBIU_SDBCTL = 0x0011; //SDRAM 大小设置
asm("SSYNC;");
*pEBIU_SDGCTL = 0x91998d; //SDRAM Memory Global Control Register
asm("SSYNC;");
}
此时程序就跑不起来了 不知道哪里还有设置的地方 望指教
此时调用ADSP的内存遍历程序 写入和读出都没有问题
内存遍历都是对的 示波器也可以抓到SDRAM的时序
void speed_w_test(void)
{
int i,cont;
volatile unsigned short* DDRdata;
DDRdata = 0;
for(i=0;i<0x800000;i++)
{
if(i%2)
{
*DDRdata = 0xaaaa;
DDRdata++;
}
if(!(i%2))
{
*DDRdata = 0x5555;
DDRdata++;
}
}
}
内存遍历代码 由于采用16M SDRAM 所以改为0x800000