调试16C550,痛苦的过程~~
2009-09-08 16:41
441 查看
从上周五开始调试串口通讯芯片TL16C550,终于在一刻钟前调通了~~
痛苦的煎熬过程终于结束了~~
记录一下调试心得~~
嵌入式系统软件调试的痛苦在于他要与硬件交互,与硬件息息相关;
嵌入式系统软件调试更痛苦的地方在于,软件你要调,而硬件却又不是你做,你以为硬件不会有很低级的错误呢他偏偏就有;
16C550寄存器不多关键就那么两三个寄存器(LCR,DLM,DLL)~~
第一,
写了验证程序很简单,可是怎么都不通,连BAUDOUT信号也出不来,于是用示波器一个个抓逻辑(感谢我们有示波器于是有很多多通道示波器用,也因为我们是做示波器的,所以我耽误了很多时间发现示波器的BUG,郁闷)。发现FPGA出的ALE信号有问题,于是告诉逻辑修改方案,修改,实验测量没有问题了,可是还出不来,于是又查程序。
第二,
昨天搞了一早晨,还是没搞出来,郁闷了,于是叫来硬件,帮忙检查他的电路有没有问题,这里我们犯了一个严重的错误,几乎所有的信号都查了,连读写控制线和数据的时序都看了,也没看出什么问题,见天早晨又搞了一两个小时还是没有发现问题。
于是我决定用51搭一个最小系统,验证,以排除硬件问题,下午用了两个多小时飞线搭好了,然后写程序,16C550的写时序都快背下来了。在调试过程中发现复位信号好像有点和硬件原理图不一样,于是乎,对了一下原理图和芯片手册,终于发现了问题,于是飞线,跑了一下DSP程序直接成功。
郁闷呀~~~
又被复位深深的伤害了~~
经验>:
(恍惚中两年前总结过一个喝着类似的经验 不过那时候做硬件)
查时序,查片选,千万别忘了查复位!!! 复位啊 复位~~~~
痛苦的煎熬过程终于结束了~~
记录一下调试心得~~
嵌入式系统软件调试的痛苦在于他要与硬件交互,与硬件息息相关;
嵌入式系统软件调试更痛苦的地方在于,软件你要调,而硬件却又不是你做,你以为硬件不会有很低级的错误呢他偏偏就有;
16C550寄存器不多关键就那么两三个寄存器(LCR,DLM,DLL)~~
第一,
写了验证程序很简单,可是怎么都不通,连BAUDOUT信号也出不来,于是用示波器一个个抓逻辑(感谢我们有示波器于是有很多多通道示波器用,也因为我们是做示波器的,所以我耽误了很多时间发现示波器的BUG,郁闷)。发现FPGA出的ALE信号有问题,于是告诉逻辑修改方案,修改,实验测量没有问题了,可是还出不来,于是又查程序。
第二,
昨天搞了一早晨,还是没搞出来,郁闷了,于是叫来硬件,帮忙检查他的电路有没有问题,这里我们犯了一个严重的错误,几乎所有的信号都查了,连读写控制线和数据的时序都看了,也没看出什么问题,见天早晨又搞了一两个小时还是没有发现问题。
于是我决定用51搭一个最小系统,验证,以排除硬件问题,下午用了两个多小时飞线搭好了,然后写程序,16C550的写时序都快背下来了。在调试过程中发现复位信号好像有点和硬件原理图不一样,于是乎,对了一下原理图和芯片手册,终于发现了问题,于是飞线,跑了一下DSP程序直接成功。
郁闷呀~~~
又被复位深深的伤害了~~
经验>:
(恍惚中两年前总结过一个喝着类似的经验 不过那时候做硬件)
查时序,查片选,千万别忘了查复位!!! 复位啊 复位~~~~
相关文章推荐
- 单片机 DS1302 痛苦的调试过程,把我的经验教训分享给大家,希望能给后来者一点帮助
- 单片机 DS1302 痛苦的调试过程,把我的经验教训分享给大家,希望能给后来者一点帮助---二 比一好些
- 在开发过程中调试报表插件详细教程
- Postgresql存储过程调试:PostgreSQL 之 Function NOTICE
- ccs调试过程中碰到的问题总结
- 回忆真是一个痛苦的过程
- PLSQL调试存储过程无法进入单步调试
- 在PL/SQL 开发中调试存储过程和函数的一般性方法
- SQL Server 调试存储过程等数据库对象
- UEditor 使用调试过程
- 如何使用VS.NET调试数据库存储过程
- 【数据库】如何调试sql语句、存储过程——PLSQL、VS
- 通过gdb调试分析Linux内核的启动过程
- SpringMVC中的java.lang.ClassNotFoundException: org.aspectj.weaver.BCException 调试过程记录
- Log4j在java多线程调试过程中的使用
- oracle 调试存储过程需要权限
- VSS控制存储过程,及其asp.net的远程调试
- 调用Qchart过程中调试退出问题
- 在PL/SQL开发中调试存储过程和函数的一般性方法
- NativeSample调试过程记录