公司开发的一款温湿度检测仪,之前采用ESP8266模组开发的,现在准备降低成本,选用的ESP8684单芯片方案,在ESP8684方案上开发
因客户需求变更,在MQTT处理函数中,去掉一段代码,结果程序一直发生重启现象,以为是MQTT处理任务中的问题,排查半天并未发现问题。最后调试其他任务,发现屏幕驱动任务取消创建后,重启消失
通过输出参数,发现调用屏幕时间更新显示时,传递的周次出现问题,应该传递tm_wday,给传递成tm_yday
但是这段代码都好久了,一直没发生重启,当然屏幕显示肯定是有问题,但是一直开发板写的,并未发现,代码也是复制的旧的进行修改的,最后把所有代码还原到之前不重启的状态,然后输出日志,发现运行正常,然后在当前代码下,增加日志输出tm_yday值,担心是MQTT任务导致时钟同步失败,所以tm_yday=0。但是就增加一行输出日志代码后,又开始继续重启
可能是以前习惯了,一般数组越界,都会发生重启现场,能及时排查到问题,看来以后还是得多家容错的处理代码
哎,先在屏幕驱动程序内加上异常数据报错吧
收藏
扫描二维码,在手机上阅读
版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!
试一试