• 软硬件调试九法:第七条规则 检查插头


    1、质疑你的假设

      你十分运行了正确的代码?电源插头是否已插好? 比如网络连接失败了,是不是你不小心把网线接头踢掉了?比如汽车无法启动,是否油箱没油了? 有时我们看到一个问题,通常在某个特定位置看到了正确的问题,但是导致这个问题的却在上游或者底层驱动上,只是系统不具备正确操作条件时,出现了奇怪的表现。

    2、从头开始

      是否正确的对内存进行了初始化?电源开关是否已经打开? 比如如果你的程序序需要初始化内存、全局变量、局部变量,而你又没有这么做,那么情况会很糟,它会让你自己测试时是运行正确的,到客户演示时就出错了。

    3、对工具进行测试

      编译器的参数设置是否正确?测量工具是否没电了?

      实际案例:

    1. 在使用IAP引导程序时,应用程序的起始地址应该在编译器中正确设置,否则下载完成后无法运行。
    2. 在选择单片机时,型号要正确,假设你使用的MCU内存只有8K,编译时选择的MCU型号内存有16K,程序实际使用的内存为8.2K,编译不会报错,但是运行时,程序可能随机崩溃。
    3. 之前使用稳压源供电,电路板一上电就显示电流800mA,但是系统能运行起来,但是部分硬件出错,起初怀疑硬件有问题,后来发现是稳压源供电能力不足导致。
    4. 工具本身也有bug, 比如编译器,因为其也是工程师设计的,为什么它比你的软件更值得信任呢?Keil编译器本身也有bug,之前使用Keil C51时,其中一个bug使会过滤程序中的汉字内码中的“0xFD”,导致程序出错,在使用点阵汉字显示时,我是实际遇到并必须使用国内网友提供的bug补丁才解决的!
  • 相关阅读:
    bootstrap的demo网站
    百度地图和js操作iframe
    (转)关于List中FindAll用法的一些简单示例
    (转)ORACLE触发器详解
    多线程Java Socket编程示例(转)
    java Socket用法详解(转)
    java socket编程基础(转)
    Java Socket 基础例子
    C# Socket服务器端如何判断客户端断开
    windows server 2008 R2 远程连接用户数修改
  • 原文地址:https://www.cnblogs.com/shuolang/p/5366407.html
Copyright © 2020-2023  润新知