2781|4

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

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 :
   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也是每次新编译出来的。

请大侠指点。

最新回复

我来顶    NoGoodWords  详情 回复 发表于 2010-2-22 04:43
点赞 关注

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
usrInit函数由tornado自动生成(在你rebuild时),如果你真要想用这种办法就不要rebuild了,build一下就可以了
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
如上面的高手所说的,usrInit里面的函数是建工程时自动生成的,你在tornado下注释它,再编译是没有用的。你可以用trace32调试一下啊。看看是哪步飞了!
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
到你的BSP目录,修改下makefile ,和环境变量(将编译器指到你tornado下的bin目录)再在你的
bsp目录下make vxWorks 一下就好。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
我来顶    NoGoodWords
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表