这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 下载VX映像的奇怪问题

共10条 1/1 1 跳转至

下载VX映像的奇怪问题

菜鸟
2007-05-02 20:52:19     打赏
编译BOOTROM_RES.BIN烧到板子后,能正常的PING通板子,
而编译BOOTROM.BIN和BOOTROM_UNCMP.BIN烧到板子后,
都PING不能通.
另外,PING通后,也不能下载VX映像.
终端显示OADING ....59904
TORNANDO 自带的FTP显示,TIMEOUT WHILE SENDING DATA.
不知道怎么回事?
FTP里的设置没有问题啊.



关键词: 下载     映像     奇怪     问题    

菜鸟
2007-05-02 22:01:00     打赏
2楼

你描述的现象存在多种可能的问题.单从现象来分析: bootrom_res是驻留型映像,只有数据段被复制到RAM0,文本段在ROM里面,程序在ROM里执行.而bootrom和bootrom_uncmp则将数据段和文本段都复制到RAM,再跳到RAM中执行.如果后两种执行不起来,从与第一种的区别来讲,有可能是跳转到RAM没有成功,或者跳转后不能执行,这有可能是内存本身有问题,或者MMU的配置有问题.可以检查一下配置,如果有仿真器,最好能跟踪一下bootrom_uncmp的执行过程,看到底哪里出的问题.

从你的FTP下载VxWorks映像也有问题来看,,,,,还有一种有可能的情况,就是你的目标板内存太小了:把数据段,文本段复制到到RAM以及FTP下载VxWorks映像,都需要比bootrom_res更多的内存空间,,,,,这两种情况都出了问题,所以怀疑到这里.

可否提供更多的参考信息,比如CPU,内存大小等等.

关注


菜鸟
2007-05-02 23:32:00     打赏
3楼

谢谢及时回复,

自己是44B0X平台,2 M NOR FLASH,8M SDRAM.ROMSIZE 定义为512K.

刚看了电路原理图,应该是没有错的.板子是别人做的,参考了优龙的原理图.

加载BOOTROM_UNCMP后,运行串口不能输出BOOTROM的信息.

以前是可以的.


菜鸟
2007-05-03 01:18:00     打赏
4楼

RAM和Flash都够用了.上面猜的不够的可能性是没有了.

从你的描述发现8M的 SDRAM.....是否SDRAM没有配置起来? 以前是可以的,是不是同一块板子? 可以示波器量一下SDRAM的Clk,Cas#和Ras#等新信号.或者通过仿真器做一下内存读写测试...


菜鸟
2007-05-05 06:18:00     打赏
5楼

谢谢,版主的热心哈.

今天用REDBOOT测试了下SDRAM,正常的啊.

REDBOOT里面的测内在命令测试的.

先写再读.应该正常的吧.

太慢,后面就重启了.


菜鸟
2007-05-05 18:54:00     打赏
6楼

啊哈,看来你的目标机不是x86,很有可能是ARM、PPC、MIPS之类的处理器了。而且有调试器,那就好办了。。可以做如下测试:

使用bootrom_uncmp作为映象,烧写到Flash。。。

用反汇编工具反汇编这个映象文件,用于调试静动态比照。

首先比较romInit.s中的代码是否执行正常(应该与反汇编中的代码完全一致)

接下来看是否正确跳转到C语言入口(第一行C语言代码是否执行到了),并检查一下堆栈设置是否合法。

在bootConfig.c中的usrInit()函数中添加一个死循环(如果你的调试器可以支持C语言断点,就不用这么麻烦了,直接设置断点),比如:

int a = 0;

while (a == 0){;}

这样,程序运行在这里将进入死循环,用调试器将运行挂起,再进行SDRAM的测试(在调试器中写入再读出)。确认SDRAM再经过VxWorks的初始化之后是OK的。检查一下堆栈寄存器是否在预定的地方(一定要在RAM中,有些情况下,会搞错)。如果都OK。则通过修改寄存器,把变量a变成1,让程序继续往下走。

接下来的代码都在C语言里面,如果目标机有点灯的硬件,可以在代码中中插入点灯代码,用每次增加一次点灯的方法,一步一步往前调试。

既然没有运行起来,肯定是在某个步骤的执行上出了问题。。。。可结合Vxworks的相关文档和反汇编代码,采用以上方法逐步跟踪,发现问题所在。这样虽然麻烦,但是肯定可以调出来,而且对于学习整个代码结构和执行顺序很有好处。

如果一时弄不清各个函数的执行顺序和调用关系,可以结合反汇编代码来看,还有,一个比较老的VxworksBSP Trainning 文档是很有用的。如果要完全靠自己搞清楚这些东西,则可结合makefile规则和编译输出信息看看它到底引用了哪些文件。

继续关注。但近期要出国,回来应该是12号左右了。

祝好运。


菜鸟
2007-05-05 20:10:00     打赏
7楼

我装了IDA,以前把BOOTROM_UNCMP放进去,反汇编出来好像不正确啊.

不知道怎么用?有没有什么使用介绍的的文档哦


菜鸟
2007-05-13 02:13:00     打赏
8楼

IDA的较高版本支持PPC,ARM,等各种处理器,选择合适的处理器,选择elf格式.使用不带尾缀的映像进行反汇编,比如bootrom_uncmp.不要使用hex和bin类型的进行反汇编。

介绍性文档很少,其实用起来还是很方便的。。。


菜鸟
2007-05-14 20:51:00     打赏
9楼

谢谢,版主,我先试下,问题还没有解决.

应该是SDRAM有问题.


菜鸟
2007-05-16 08:07:00     打赏
10楼

我遇到过防火墙禁用FTP的情况,你看看


共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]