|
最近在条MPC860系列的CPU的BSP文件,生成vxworks,下载到板上,总是死掉了。发现死在usrInit()里了,usrInit()里又有不少子函数,不知道死在哪个子函数里了。于是采用排查方式。但是一开始就有问题了。如下:
void usrInit (int startType) /* 先注销函数内所有子函数作为排查第一步骤*/
{
// sysStart (startType); /* clear BSS and set up the vector table base address. */
// cacheLibInit (USER_I_CACHE_MODE, USER_D_CACHE_MODE); /* include cache support */
// excVecInit (); /* exception handling */
// sysHwInit (); /* call the BSPs sysHwInit routine during system startup */
// usrCacheEnable (); /* optionally enable caches */
// usrKernelInit (); /* context switch and interrupt handling. DO NOT REMOVE. */
}
经过Tornado2.2编译得到vxWorks文件后,我 objdumpppc -d vxworks >boot.s。 查看boot.s文件,关于usrInit有如下的结果:
00016730 :
16730: 94 21 ff e0 stwu r1,-32(r1)
16734: 7c 08 02 a6 mflr r0
16738: 93 e1 00 1c stw r31,28(r1)
1673c: 90 01 00 24 stw r0,36(r1)
16740: 90 61 00 08 stw r3,8(r1)
16744: 80 61 00 08 lwz r3,8(r1)
16748: 4b ff e2 ed bl 14a34 /????
1674c: 38 60 00 01 li r3,1
16750: 38 80 00 01 li r4,1
16754: 48 05 01 9d bl 668f0 /????
16758: 48 00 07 e1 bl 16f38 /????
1675c: 4b ff ae d9 bl 11634 /????
16760: 4b ff de a1 bl 14600 /????
16764: 4b ff de d1 bl 14634 /????
16768: 80 01 00 24 lwz r0,36(r1)
1676c: 7c 08 03 a6 mtlr r0
16770: 83 e1 00 1c lwz r31,28(r1)
16774: 38 21 00 20 addi r1,r1,32
16778: 4e 80 00 20 blr
我对C语言子程序函数内部语句的“//”注销,好象没有起作用。试过多次,都是如此。
“objdumpppc -d vxworks >boot.s”命令所用的vxworks也是每次新编译出来的。
请大侠指点。
|
|