|
板凳
楼主 |
发表于 2014-12-10 17:02:17
|
只看该作者
拨码开关调到 01111 现象一样
我根据提示在gel函数中找到OnTargetConnect()函数,此函数调用CPU_PLL_PSC_DDR_Init();函数定义如下:hotmenu CPU_PLL_PSC_DDR_Init()
{
Clear_Memory_Map();
Setup_Memory_Map();
PSC_All_On();
Core_456MHz_DDR2_156MHz();
PINMUX();
Wake_DSP();
Wake_PRU();
}
根据gel文件的输出提示:ICEPICK_C: Output: Memory Map Setup Complete.和
at PSC_All_On() [Tronlong_C6748.gel:259] at CPU_PLL_PSC_DDR_Init()
应该执行到PSC0_LPSC_enable()出现错误,这个函数主要是初始化外设,找不到有用的信息,于是我又通过提示
CEPICK_C: Trouble Reading Memory Block at 0x1c10800 on Page 0 of Length 0x4
ICEPICK_C: GEL: Error while executing OnTargetConnect(): Target failed to read 0x01C10800 at (*((unsigned int *) ((0x01C10000+0x800)+(4*LPSC_num)))&0x1F)
寻求 ((0x01C10000+0x800)+(4*LPSC_num)))&0x1F) 这个地址,提示是不能访问此地址,
gel函数定义:
#define PSC0_BASE 0x01C10000
unsigned int *pPSC0_MDSTAT = (unsigned int*)0x01C10800;
define PSC0_MDSTAT (PSC0_BASE+0x800)
最后定位到运行到函数PSC0_LPSC_enableCore()出现问题:这个函数定义如下:
PSC0_LPSC_enableCore(unsigned int PD, unsigned int LPSC_num) {
unsigned int j;
if( (*(unsigned int*)(PSC0_MDSTAT+4 * LPSC_num) & 0x11F) != 0x103 ) {
*(unsigned int*) (PSC0_MDCTL+4*LPSC_num) = (*(unsigned int*) (PSC0_MDCTL+4*LPSC_num) & 0xFFFFFEE0) | 0x0103;
PSC0_PTCMD = 0x1<<PD;
j = 0;
/*Wait for power state transition to finish*/
while( (PSC0_PTSTAT & (0x1<<PD) ) !=0) {
if( j++ > PSC_TIMEOUT ) {
GEL_TextOut("\tPSC0 Enable Core Transition Timeout on Domain %d, LPSC %d\n","Output",1,1,1,PD,LPSC_num);
break;
}
}
j = 0;
while( (*(unsigned int*)(PSC0_MDSTAT+4 * LPSC_num) & 0x11F) !=0x103) {
if( j++ > PSC_TIMEOUT ) {
GEL_TextOut("\tPSC0 Enable Core Verify Timeout on Domain %d, LPSC %d\n","Output",1,1,1,PD,LPSC_num);
break;
}
}
}
}
请大家分析一下?gel问价有问题吗
|
|