大家好:
我在6657开发板上测试初始化,首先main函数KeyStone_main_PLL_init(100, 10, 1),console可以正常输出
[C66xx_0] Initialize DSP main clock = 100.00MHz/1×10 = 1000MHz。
然后下面写KeyStone_DDR_PLL_init(50.0,20,1);console不能输出Initialize DDR speed = ****。
判断程序应该是卡死在其调用的KeyStone_PLL_init,请问该如何做,这样初始化的方法不对吗?
程序编译通过,没有报错和警告,在0核上运行。
shiwei pan:
单步运行发现卡死在TSC_delay_us延时程序,这部分能有什么能有什么问题?
void TSC_delay_us(Uint32 us){ volatile unsigned long long startTSC, currentTSC; unsigned long long delay_cycles; Uint32 tscl, tsch;
tscl= TSCL; tsch= TSCH; startTSC= _itoll(tsch,tscl); delay_cycles= ((unsigned long long)us*gDSP_Core_Speed_Hz/1000000);
do { tscl= TSCL; tsch= TSCH; currentTSC= _itoll(tsch,tscl); } while((currentTSC-startTSC)<delay_cycles);}
Thomas Yang1:
回复 shiwei pan:
您定时器跑起来了吗?可以查看TIMER中的寄存器判别下,如果没有重点检查SYSCLK, PLL相关配置
shiwei pan:
回复 yue li2:
恩 是的要先初始化TSC