This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

请教6455 dsk的DDR‏



你好!

      我在使用TI 6455 DSK板的时候,发现其SDRAM使用起来不正常。在DSK板的例程Ddr_normal_mode_read_write_example.pjt中加入往整个DDR中写入0,1,2,……的有序整数,然后再读取判断是否正确的程序,发现无论按8位、16位还是32位,都不能正确读写整个DDR。请问是怎么回事呢?此工程中数据位宽定义为Normal,也就是32位。但是实际上按照32位读写整个DDR空间是失败的。

  • 原例程能正确运行吗?

    你修改成的程序是怎么写的?

    谢谢

  • 我运行原例程也是正常的,因为原例程仅仅只对最前面十个双字空间进行读写操作。我在原例程配置完DDR后调用以下函数,就会出错。(运行工程的计算机不能上网,下面代码是我凭记忆手敲的,可能会有bug,请谅解)

    ///////////////////////////////////////

    #define SDRAM_SIZE    (0x08000000)

    #define SDRAM_ADR_STR (0xE0000000)

    typedef unsigned int UINT32;

    void SdRamTest_32()

    {

       UINT32 i, j;

       UINT32 *pt;

       // write the whole SDRAM

       pt = (UINT32 *) (SDRAM_ADR_STR );

       for(i=0; i<SDRAM_SIZE>>2; i++)

       {

           (*pt)  =  i;

           pt ++;

       }

       // read the whole SDRAM

       pt = (UINT32 *) (SDRAM_ADR_STR );

       for(i=0; i<SDRAM_SIZE>>2; i++)

       {

           j = (*pt);

           if(j != i)

           {

               printf("READ 0x%8x Error!\r\n", (UINT32)pt);

               return;

           }

           pt ++;

       }

       printf("READ the Whole Sdram Sucess!\r\n");

    }

  • 请单步调试一下,为什么数据不对,因为毕竟这个工程是CSL中提供的,并非配套开发板的例程。所以可能有些配置并不是应该板子,需要做修改才能正确。