6811|11

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

以调试可加载vxWorks的方式调试Boot程序是否可行? [复制链接]

 问题描述:
        大家好。我有一块MPC85X的开发板,有现成的Boot程序。但是我觉得不够好,所以希望修改原有的Boot程序源码,重新生成可烧录的Boot。但在最后定型前,要经过多次调试。小弟想采用与调试可加载vxWorks内核映像一样的方式,通过网口将bootrom.bin下载到板子上调试。不知道这样是否可行?如果可行,需要注意些什么东西?编译bootrom.bin的时候是否要重新定位地址?比方说,将bootrom.bin加载到0x10000处执行,是否需要在Tornado的环境里做些更改?
        小弟是新手,请大侠不吝赐教。

最新回复

   应该可行。目前我的BOOT已经运行起来。贴一点结果: CPU: Embedded Planet _ - MPC Version: VxWorks5.5.1 BSP version: 1.2/0 Creation date: May 13 2010, 18:11:10 Press any key to stop auto-boot... 7 [VxWorks Boot]:   BOOT上调试BOOT有了重大进步。只是我目前还没有调通网络部分,新的BOOT还不能支持网口下载功能。还需要继续努力。  详情 回复 发表于 2010-5-13 18:27
点赞 关注
 

回复
举报

61

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
帮顶,lz有研究精神
 
 
 

回复

93

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
说清楚你现有的boot程序是什么?uboot或vxworks的bootrom 还是什么?要是完全自己编写有点难吧!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
帮顶,lz有研究精神
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
我现在板上的的Boot程序是vxworks的bootrom。正准备给板子移植个u-boot的。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

6
 
我用u-boot调arm,是通过串口下载后,进行调试的(u-boot本身就支持,at91rm9200串口可引导)
问题是如果你能实现串口下载,并load起来,您的boot程序也就基本差不多。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
我没用过ARM的,但在X86架构下用ftp下载是可行的,不过是反复通过网口刷boot
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
我觉得应该是可以的只要把地址处理好就可行。所以现在正在修改Boot。现在我在调试,碰到了以下的问题:
romstart.s文件的最后几条语句如下:
    。。。。
        sub        r6, r6, r7                        /* routine - entry point */
        add        r6, r6, r8                         /* + ROM base */
        mtlr        r6                                /* move C entry point to LR */
        blr                                        /* jump to the C entry point
通过blr,跳转到:bootinit.c文件中的 romStart(int startType)处执行,就死掉了。执行不下去。通过反汇编的方式查原因:romStart的标号地址是 101b0,而上面的“ blr ”语句的lr(r6)也是 101b0。程序执行结果如下:
。。。。
Attaching network interface lo0... done.
Loading... vxworks.bin
Starting at 0x10000...

就不动了。
请问这大概会是什么原因?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

9
 
应该可以点灯看看 是否执行到romStart吧
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 7 楼 yzpyzp 的回复:
我觉得应该是可以的只要把地址处理好就可行。所以现在正在修改Boot。现在我在调试,碰到了以下的问题:
romstart.s文件的最后几条语句如下:
。。。。
sub r6, r6, r7 /* routine - entry point */
add r6, r6, r8 /* + ROM base */
mtlr r6 /* move C entry point to LR */
b……


看起来Load之后又打算执行一次Romstart.s里的内容
不知道LZ编译出来的bin文件开头的地方放了什么东西?
有很多硬件连接方式下为了让CPU上电得到上电复位字信息,文件开头的地方是放上电复位字的,CPU根据上电复位字再跳转到第一条指令的地址运行,这是一个硬件自动执行的过程。
而LZ这种加载方式显然CPU不会再有这样一个过程了,所以它starting之后跳转到的地址处有可能并不是你想让它执行的指令,而是没有语句意义的上电复位字。

乱分析,LZ参考着看。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

11
 
没呵呵额额!
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

12
 
   应该可行。目前我的BOOT已经运行起来。贴一点结果:

CPU: Embedded Planet _ - MPC
Version: VxWorks5.5.1
BSP version: 1.2/0
Creation date: May 13 2010, 18:11:10


Press any key to stop auto-boot...
7

[VxWorks Boot]:


  BOOT上调试BOOT有了重大进步。只是我目前还没有调通网络部分,新的BOOT还不能支持网口下载功能。还需要继续努力。
 
 
 

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

随便看看
查找数据手册?

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-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表