首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > VxWorks >

BSP函数注销不已

2012-12-29 
BSP函数注销不了。最近在条MPC860系列的CPU的BSP文件,生成vxworks,下载到板上,总是死掉了。发现死在usrInit(

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 stwur1,-32(r1)
   16734:7c 08 02 a6 mflrr0
   16738:93 e1 00 1c stwr31,28(r1)
   1673c:90 01 00 24 stwr0,36(r1)
   16740:90 61 00 08 stwr3,8(r1)
   16744:80 61 00 08 lwzr3,8(r1)
   16748:4b ff e2 ed bl14a34 <sysStart>         /????
   1674c:38 60 00 01 lir3,1
   16750:38 80 00 01 lir4,1
   16754:48 05 01 9d bl668f0 <cacheLibInit>     /????
   16758:48 00 07 e1 bl16f38 <excVecInit>        /????
   1675c:4b ff ae d9 bl11634 <sysHwInit>         /????
   16760:4b ff de a1 bl14600 <usrCacheEnable>     /????
   16764:4b ff de d1 bl14634 <usrKernelInit>        /????
   16768:80 01 00 24 lwzr0,36(r1)
   1676c:7c 08 03 a6 mtlrr0
   16770:83 e1 00 1c lwzr31,28(r1)
   16774:38 21 00 20 addir1,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 一下就好。

热点排行