Part Number:TMS320C6672
您好,
在cmd文件中,配置代码运行在DDR时,在主程序里面加如DDR时钟配置和初始化时,程序卡死在DDR初始化那里,但是在cmd文件中,配置代码运行在SL2内存,DDR时钟配置和初始化就可以通过。
两种方式都在gel文件中对ddr初始化了。请问这是什么原因呢?配置代码运行在DDR时,主程序里面不能对DDR时钟配置、初始化吗?那RTSC的工程怎么办呢?
Nancy Wang:
? ? 说:配置代码运行在DDR时,在主程序里面加如DDR时钟配置和初始化时,程序卡死在DDR初始化那里
您运行的是哪个程序,只在gel文件中进行DDR初始化,不在主程序中初始化是可以正常运行的吗?
,
? ?:
就那个K1_STK_v1.1中的UART、Memory_Test,这俩都这样,卡在void C6678_EVM_DDR_Init()函数里面,每次卡的位置不一样。
—-》只在gel文件中进行DDR初始化,不在主程序中初始化是可以正常运行的吗?
答:是的
,
Nancy Wang:
请阅读以下帖子的讨论,您是自制板吗?建议根据实际的layout情况重新做初始化配置。
e2echina.ti.com/…/6657-ddr3
,
? ?:
是自制的板子,那个帖子的情况和我的不一样,我的是DDR3初始化是可以通过的(前提是cmd文件中配置sections的所以字段,如.text .cinit等都配置在SL2空间里),而且可以正常工作。但是如果将sections字段配置在DDR3里,初始化是不通过的。另外,我在gel文件中,对DDR3进行初始化后,程序里不再初始化DDR3,并且在程序的cmd文件中配置sections的字段在DDR3里,程序也可以正常执行。
看起来DDR3的初始化配置应该没问题,另外,想问下这种情况是DDR3的leveing配置的问题吗
,
Nancy Wang:
是的,我觉得可能还是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