您的位置:首页 > 其它

调试16C550,痛苦的过程~~

2009-09-08 16:41 441 查看
从上周五开始调试串口通讯芯片TL16C550,终于在一刻钟前调通了~~

痛苦的煎熬过程终于结束了~~

记录一下调试心得~~

嵌入式系统软件调试的痛苦在于他要与硬件交互,与硬件息息相关;

嵌入式系统软件调试更痛苦的地方在于,软件你要调,而硬件却又不是你做,你以为硬件不会有很低级的错误呢他偏偏就有;

16C550寄存器不多关键就那么两三个寄存器(LCR,DLM,DLL)~~

第一,

写了验证程序很简单,可是怎么都不通,连BAUDOUT信号也出不来,于是用示波器一个个抓逻辑(感谢我们有示波器于是有很多多通道示波器用,也因为我们是做示波器的,所以我耽误了很多时间发现示波器的BUG,郁闷)。发现FPGA出的ALE信号有问题,于是告诉逻辑修改方案,修改,实验测量没有问题了,可是还出不来,于是又查程序。

第二,

昨天搞了一早晨,还是没搞出来,郁闷了,于是叫来硬件,帮忙检查他的电路有没有问题,这里我们犯了一个严重的错误,几乎所有的信号都查了,连读写控制线和数据的时序都看了,也没看出什么问题,见天早晨又搞了一两个小时还是没有发现问题。

于是我决定用51搭一个最小系统,验证,以排除硬件问题,下午用了两个多小时飞线搭好了,然后写程序,16C550的写时序都快背下来了。在调试过程中发现复位信号好像有点和硬件原理图不一样,于是乎,对了一下原理图和芯片手册,终于发现了问题,于是飞线,跑了一下DSP程序直接成功。

郁闷呀~~~

又被复位深深的伤害了~~

经验>:

(恍惚中两年前总结过一个喝着类似的经验 不过那时候做硬件)

查时序,查片选,千万别忘了查复位!!! 复位啊 复位~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: