|  | 
板凳
 
 
 楼主|
发表于 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问价有问题吗
 
 
 
 
 
 
 
 | 
 |