单片机程序出现随机性BUG的问题记录

       最近接收了一位前辈的代码,要更换新的平台,用的国产单片机,代码移植完成后,出现诡异问题:

        本人测试的时候,通过keil在线调试,一切功能正常。当将编译好的HEX文件,发给测试人员测试的时候,问题就出现了,还出现了几种不同的问题:

     Q1:设备上电后,数码管乱显示,正常应该上电数码管不显示;

     Q2:设备上电后,出现随机配置项,配置完成的参数,保存后,重新上电后,变成随机数

       由于是外包项目,和测试不在一个地方,自己测试一切正常,对方测试一堆问题,都开始怀疑是不是目标文件错了,检查几遍以后,发现没错,检查代码,也没有发现问题。

        开始怀疑硬件是不是不一样,最好找了同一版本的硬件,测试还是有问题,而且每一块板表现的故障都不一样,这时还是得在代码上找问题。来来回回看了几遍,没发现问题。

       最后去查参数初始化,才发现,参数没有初始化。将参数初始化完毕后,设备正常。

       同样的代码,以前平台可以,现在不行,只能怀疑设备断电后,RAM的初始化问题了,有的平台可能RAM初始化了,有的可能上电就是个随机值,所以就回出现这种随机性的BUG。所以声明变量时最好同时初始化。之前那个前辈的代码全部都是声明在头文件,没有初始化,也没有初始化函数来初始化数据,所以出现这种问题!保险起见,所有上电启用的参数,一定要初始化话,鬼知道RAM里面原来存的是什么值。

   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值