S3C2440开发板调试中遇到的两个问题

来源:互联网 发布:曾经很红的网络歌曲 编辑:程序博客网 时间:2024/06/08 03:01

      之前说要专门写一篇文章说明一下我们的开发板在调试过程中遇到的问题,今天终于有时间了,那我就好好地总结一下。主要是两个问题。

      1、Unable to halt ARM core

      开发板做好后,我们就迫不及待地想在Nor Flash里烧写Supervivi,看看我们的板子是否能正常工作。烧写Nor Flash通常有2种方法,一种是通过H-jtag,另一种是通过J-Link。我们首先用的是H-jtag,板子上电后,能够检测到ARM9芯片,但是在对Nor Flash进行编程的时候,却出现问题了,软件提示“Unable to halt ARM core”,换用J-Link之后,同样还是这个问题。当时,我们那叫一个纠结啊!

      把这几个关键字搜了一下,网上的说法主要是reset没有成功,或者nWAIT没有上拉等,造成没有成功停止CPU内核,于是JTAG无法正常与CPU通信,因此无法烧写程序到Flash。但是我们的板子没有这样的问题,另外,我们仔细检查了CPU与Flash引脚之间的连线,检查了OM[3:0]这几个引脚的连接方式以及CPU电源,都没有发现问题。最后,师兄在买回来的核心板上面,发现多了一个电阻,仔细查看原理图,发现这个电阻连接到CPU的nBATT_FLT引脚,3.3V上拉。而我们的板子上面,这个引脚是悬空的,我们又查阅了S3C2440的芯片手册,上面写着当这个引脚不使用时必须上拉(3.3V)。幸亏当时画板的时候,这个引脚通过过孔引出来了,于是,我们焊了一个上拉电阻。再次上电,OK!接下来的一切都比较顺利,直到遇到下面这个问题......

      2、网络连接时断时续

      首先说明一下,我使用的网卡芯片是DM9000EP。在把bootloader、Linux内核、文件系统烧写到Nand Flash里之后,按照Micro2440的用户手册,我想测试一下它的telnet功能,用交叉网线把主机和开发板连接之后,主机右下方的本地连接一会儿显示连接,一会儿显示断开,反正就是不消停。在把主机和开发板设为同一网段之后,两边互相ping对方,无法ping通。软件是肯定没问题的,因为我们在友善之臂平台上做实验,是完全正常的。接下来,我把目光又放在了硬件上。一开始仍然检查电路图,看看是否又像核心板那样,某个引脚连得不对,但是这项工作完成后,我没有发现任何问题。接着,我又考虑是否我的布线不规范?但一般的电路没有那么娇气啊。百无聊奈之下,我又把友善之臂Micro2440板子上与网卡有关的器件拆拆装装,看能不能模拟这个问题。最后,实在是没办法了,我狠下心,把好板之上的DM9000EP芯片卸下来,焊在我们的板子上,没想到,居然成功了!OMG,看来是芯片批次问题。

      这两个问题纠结了我们两周多的时间,不过,解决之后,顿时感觉神清气爽。在这里分享一下,也想给广大学习嵌入式的朋友们提供一些参考,在这个开放的平台中,我们,不是一个人在战斗!

原创粉丝点击