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.

TMS320C6672: DDR时钟配置和初始化

Part Number: TMS320C6672

您好,

在cmd文件中,配置代码运行在DDR时,在主程序里面加如DDR时钟配置和初始化时,程序卡死在DDR初始化那里,但是在cmd文件中,配置代码运行在SL2内存,DDR时钟配置和初始化就可以通过。

两种方式都在gel文件中对ddr初始化了。请问这是什么原因呢?配置代码运行在DDR时,主程序里面不能对DDR时钟配置、初始化吗?那RTSC的工程怎么办呢?

  • 配置代码运行在DDR时,在主程序里面加如DDR时钟配置和初始化时,程序卡死在DDR初始化那里

    您运行的是哪个程序,只在gel文件中进行DDR初始化,不在主程序中初始化是可以正常运行的吗?

  • 就那个K1_STK_v1.1中的UART、Memory_Test,这俩都这样,卡在void C6678_EVM_DDR_Init()函数里面,每次卡的位置不一样。

    ----》只在gel文件中进行DDR初始化,不在主程序中初始化是可以正常运行的吗?

    答:是的

  • 请阅读以下帖子的讨论,您是自制板吗?建议根据实际的layout情况重新做初始化配置。

    e2echina.ti.com/.../6657-ddr3

  • 是自制的板子,那个帖子的情况和我的不一样,我的是DDR3初始化是可以通过的(前提是cmd文件中配置sections的所以字段,如.text .cinit等都配置在SL2空间里),而且可以正常工作。但是如果将sections字段配置在DDR3里,初始化是不通过的。另外,我在gel文件中,对DDR3进行初始化后,程序里不再初始化DDR3,并且在程序的cmd文件中配置sections的字段在DDR3里,程序也可以正常执行。

    看起来DDR3的初始化配置应该没问题,另外,想问下这种情况是DDR3的leveing配置的问题吗

  • 是的,我觉得可能还是leveling的问题,可能需要修改C6678_EVM_DDR_Init中的寄存器配置,正如我给您发的帖子中的描述一样,可以尝试按照实际layout情况修改DDR初始化的excel表格看看。

    www.ti.com/.../sprabl2

    或者您参考帖子中将GEL文件中的DDR初始化复制到代码中看看。

  • 我按照实际的配置,如下面的图,还是会卡死,卡死的位置在KeyStone_DDR_PLL_init(ref_clock,DDR_PLLM,DDR_PLLD)函数中的子函数KeyStone_PLL_init()函数的TSC_dealy_us(7)。无法单步进入TSC_dealy_us函数,直接跑飞了。我们只连了4对线,即DQS0~3,CK线长1.468