您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF518  sdram问题求助!
本帖共有592个阅读者
发表帖子 发表投票 回复主题
BF518 sdram问题求助!
justall666(论坛新手)
justall666
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:163
积分:11
注册时间:2013/7/25
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF518 sdram问题求助!
大家好 有一个问题想要请教  我用的是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

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/7/26 10:09:28
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你的遍历是否做了数据校验?在遍历完成后,将0地址数据改为其它的,然后运行校验,看打印几个错误,如果超过1个,说明地址线短接。另外如果你的代码用到了VDSP自带的资源,可能这些资源涉及使用内存不同,会出现不能运行的情况,如网卡Lwip的代码。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/7/28 10:24:44
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159147 Call, 1 Queries, Processed in 0.062500 second(s),