当前位置: 代码迷 >> VxWorks >> BSP函数注销不了。该怎么解决
  详细解决方案

BSP函数注销不了。该怎么解决

热度:868   发布时间:2013-02-26 00:00:00.0
BSP函数注销不了。
最近在条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 <usrInit>:
  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 <sysStart> /????
  1674c: 38 60 00 01 li r3,1
  16750: 38 80 00 01 li r4,1
  16754: 48 05 01 9d bl 668f0 <cacheLibInit> /????
  16758: 48 00 07 e1 bl 16f38 <excVecInit> /????
  1675c: 4b ff ae d9 bl 11634 <sysHwInit> /????
  16760: 4b ff de a1 bl 14600 <usrCacheEnable> /????
  16764: 4b ff de d1 bl 14634 <usrKernelInit> /????
  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也是每次新编译出来的。

请大侠指点。

------解决方案--------------------------------------------------------
usrInit函数由tornado自动生成(在你rebuild时),如果你真要想用这种办法就不要rebuild了,build一下就可以了
------解决方案--------------------------------------------------------
如上面的高手所说的,usrInit里面的函数是建工程时自动生成的,你在tornado下注释它,再编译是没有用的。你可以用trace32调试一下啊。看看是哪步飞了!
------解决方案--------------------------------------------------------
到你的BSP目录,修改下makefile ,和环境变量(将编译器指到你tornado下的bin目录)再在你的
bsp目录下make vxWorks 一下就好。
  相关解决方案