欢迎来到天天文库
浏览记录
ID:20942464
大小:28.00 KB
页数:6页
时间:2018-10-18
《嵌入式系统调试方法和注意事项》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、嵌入式系统调试方法和注意事项嵌入式系统调试方法和注意事项 嵌入式系统的调试包括硬件调试、软件调试以及综合调试。硬件调试一般是指系统刚开发出来时上电前后的检查,包括: 1)上电前检查电源和地是否短路,目视检查是否有虚焊、漏焊; 2)上电后检查时钟线上的频率和波形、幅度是否正常,各电源电压是否稳定正常,各芯片温度是否正常,各指示灯是否正常。 软件调试一般是指保证硬件一切正常的情况下验证程序执行的时序是否正确,逻辑和结果是否与设计要求相符,能否满足功能和性能要求等。软件调试的方法有很多,包括: 1)用指示灯跟踪调试;
2、 2)用串口打印调试; 3)用简单的调试器进行汇编代码级调试; 4)用比较高端的调试器进行源代码级调试; 5)用仿真器进行硬件仿真。 上述单纯的硬件调试或软件调试都是相对比较简单的,困难的是综合调试。下面我先举一些自己在工作中曾经碰到的疑难问题,然后再从中归纳出一些一般的调试方法和注意事项。 例1:我们自主设计制作的PPC860(Motorola)网络引擎平台的调试已接近尾声,同一批生产的4块板子都通过了全部软件测试,于是又去焊了第二批,可是在第二批板子中有1块板子的FEC不能正常工作,我们几个软件和硬件工程师使
3、用了各种手段,重新看了多遍芯片手册,还是没找出原因,于是把板子发回工厂重新焊接BGA,可是回来问题还是照样存在,没办法最后打算将这块板子当作个样处理,把板子上的芯片都焊下来。按常理来说这种做法很符合逻辑,因为元器件都是一样的,板子也是一批的,那就可能是这块板子的某个地方焊接不好,但又不好查,反复重新焊接可能会把主板焊坏。后来有人从PPC860芯片上用放大镜都要睁大眼睛才能看清的字符上(据说我国第一代国产高端处理器芯片“寒心”就是某“科学家”将“摩托”同一类型芯片上的这些字母磨掉后刻上“寒心一号”摇身一变造出来的!!!)发现
4、这块板子的CPU版本号是“D4”,而其他板子的CPU版本号是“D3”,可芯片手册上并没有这两个版本之间的比较说明,从网上找到PPC860的勘误手册,发现在PPC860TZP50D4版本中,ECNTRL寄存器增加了一个叫FEC_PIN_MUX的位(bit2)来控制FEC各管脚的复用功能,如果要使用FEC就必须将该位设置为1,所以要在FEC的相关程序中加上ECNTRL
5、=0x00000004语句行。 例2:当我调试业余自制的MC68VZ328板子时,电路板硬件检查没有问题,用Codewarrior通过串口往flash中烧制编
6、译好的uClinux程序也一切正常,但是重新上电,发现串口没有任何数据,用万用表检查(当时自己没有示波器等“先进设备”)也没查出结果,然后每天上下班把这块板子放在包里,没事就拿出来瞪大眼睛看看,看着也不免窝火,但有一天却发现一个标着电阻符号的地方却焊上了电容,回到家把电阻换上去再上电,串口一下就打印出uClinux的启动信息,呵,那滋味,比喝了蜂蜜都甜,当然当时也是因为没有太多经验,如果这问题放现在,估计一天内肯定解决掉。另外在初次调试自制的S3C4510开发板时,就是不能从串口输出字符,费了半天时间才发现把串口电平转换芯
7、片max3232cse的第6脚上的旦电容极性焊反了。 例3:在调试SB1250嵌入式服务器主板时,由于使用的是DDR1代内存条,数据线和时钟线上串并联的去耦电容电阻相当多,第一批焊回来的板子几乎没有一块能够顺利进入CFE(BIOS)菜单界面的,diangon.com检查时钟波形和电源与借用的DEMO板相比都很好,我把主板上DDRDIM槽周围的那些去耦电阻电容都全部用烙铁重新过一遍锡,嘿嘿,还真管用,这种方法屡试不爽,而且在后面调试PCI和HT总线时使用这招也很有用,可能是因为SB1250系统是高频电路,对焊接要求比较高,
8、稍微有一点漏焊或者虚焊都不行,我是这样认为的。 从上述几个例子中我们可以总结归纳以下几点调试方法和注意事项: 1)加深理解法:加深理解包括加深对硬件和软件的理解,加深对硬件的理解主要是详细阅读相关的芯片数据手册,而加深对软件的理解是因为现在开发嵌入式系统并不是所有程序都需要自己编写,很多都是已经做好的,直接从网上获取或者采购获得,但这些软件不一定是完全针对我们自己的目标板的,所以在使用过程中经常会发现一些问题,特别是底层软件,而一旦出现问题,开发人员首先必须了解出现问题的代码。只有建立在对相关硬件和软件深入理解的基础上
9、才可能做出更符合实际的判断,才可能更好地解决问题。 2)比较法:比较的方法有很多,比如将同样的软件放在两个类似但不相同的硬件平台上运行比较现象;将两个不同版本的软件放在同一个硬件平台上运行比较现象;将相同的软件放到相同批次但不同的两个硬件平台上运行比较现象。对于一些不是很隐蔽的问题通过比较法通常能得到
此文档下载收益归作者所有