打印

U-Boot1.1.4 + S3C44B0,反复RESET

[复制链接]
1957|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
buf|  楼主 | 2007-11-27 19:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是北京恒丰瑞科44B0开发板,并且已经有了一个可用的uboot1.1.1版本,我想对照这个版本升级到1.1.4。编译没有问题,烧进板子以后上电串口有输出,最后一行是是"Warning, bad crc……",然后就复位了,根本停不下来。我看了一下/lib_arm/board.c的代码,最后那行信息应该是在env_relocate函数中输出的,后面有一个console_init_r函数如果执行到也会有信息输出,所以问题应该在这个两个函数之间,但是看了一个下午都没有找到问题处在哪里。有一下几个问题向各位讨教:

1,我的操作系统是ubuntu7.04,编译uboot用arm-linux-gcc3.3.2,请问编译好以后怎么调试,或者有没有什么程序可以把编译好的东西转成ADX可以识别的格式?
2,linux下有什么比较轻巧的看代码的咚咚,最好是配置比较简单的,因为我办公室的机器没法上网。。。

相关帖子

沙发
阿南| | 2007-11-27 20:54 | 只看该作者

调试时,我通常使用print在终端上打印有用的信息,来定位问题

再仔细研究
看代码我通常是在windows下的sourse insight,调试时观看直接用linux下vi加些命令.
问问老王或飞船,他们对linux会更熟悉些,看有什么更好的方法

使用特权

评论回复
板凳
buf|  楼主 | 2007-11-27 22:57 | 只看该作者

谢谢阿南的建议

我觉得自己还是太缺少调试程序的经验了,遇到问题没有一个最有效的解决办法。我打算明天把uboot1.1.1烧进去,然后在ram中调试uboot1.1.4,增加一些调试信息,或者干脆把那段代码注释掉看看。明天下班再来报告结果。

使用特权

评论回复
地板
buf|  楼主 | 2007-11-28 19:20 | 只看该作者

今天的进展

我向board.c的start_armboot函数中添加了一些调试信息,发现问题出在devices_init这个函数上,其中一个calloc调用返回0,然后在console_init_r函数中把这个0作为dev_t操作,系统就崩溃了。。。。

我唯一能想到的原因就是堆栈没有设置好,可是又想不通,因为1.1.4版本的uboot是下载到ram中调试的,堆栈的初始化是由rom中的uboot1.1.1完成的,而且那个版本一直工作的很好。后来我把uboot1.1.4的TEXT_BASE由0x0c100000改为0x0c400000,居然调试没有问题了,把我给兴奋的。可是烧到rom还是同样的问题,calloc失败,郁闷

使用特权

评论回复
5
buf|  楼主 | 2007-11-28 19:33 | 只看该作者

补充一下

现在板子不会反复重启了,可是好像我只不过在board.c里添加了几行puts("xxx")而已,真是没想法啊。难道是ram的问题?这个怎么测试,我试了一下mtest,比如mtest 0c0fff00 0c100000,一开始就没个完了,一直在那儿write/read,也没有个结果出来。

噢对了,请教一下各位达人,flashpgm有linux的版本么?我用的jtag板是wiggler模式

使用特权

评论回复
6
buf|  楼主 | 2007-12-3 19:56 | 只看该作者

malloc失败

确认问题出在编译器(arm-linux-gcc 3.3.2上),用arm-elf-tools就ok了。也许是我arm-linux-gcc配置不对,暂时不深究了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

buf

3

主题

10

帖子

0

粉丝