qqfishboy 发表于 2014-7-16 11:55

请教一下合众达5509 访问sdram 的程序疑问?

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是不是可以同时使能呢?

NWPU_CHEN 发表于 2014-7-16 15:10

朋友好好看看《TMS320VC5509 DSP Extenal Memory Interface(EMIF) Reference Guide(SPRU670)》这个文档吧

zhangmangui 发表于 2014-7-17 23:53

你要确认SDRAM是外扩到那个CEx区的    然后确定他的起始地址和最大寻址范围
记得0x200000是不是已经到了下一个区了   这个基地址开始应该不是对SDRAM操作了吧
还有就是在CCS中要注意区分字地址和字节地址之分
页: [1]
查看完整版本: 请教一下合众达5509 访问sdram 的程序疑问?