0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

令人头疼的异常重启,竟然是KV的锅…

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-09-26 18:14 次阅读

​在技术支持群,看到有用户报了一个不明原因的重启问题。 重启现象是 ——有极个别设备在工作中不定时反复异常重启,大部分设备正常;反复重启设备,有时候又能持续正常工作。

隔着屏幕都感觉到了客户的着急和无奈,我决定和这位用户一起揪出这个“捣蛋鬼”。

图片

一、查找线索

按常规流程先询问用户开发模块、开发方式,并要求提供对应日志。经确认如下:

开发模块:Air780E

最新资料:www.air780e.cn

开发方式:LuatOS

开发教程

https://doc.openluat.com/wiki/26?wiki_page_id=3020

客户提供日志反馈:

脚本日志没报错误,就是不定时卡住一会,然后就重启了。

图片

第一反应:不会是死循环导致的重启吧?

用户反馈:“没有死循环,任务里面都有延时的,而且大部分设备是正常的。且重启的时间也不定,最短4秒,最长是三分多钟,看起来不符合20秒的看门狗重启呀,而且设备昨天有正常工作一天,然后异常的时候就持续一直异常。但是这个固件的绝大部分设备是正常工作,不会异常重启的。”

看来不是死循环导致的看门狗重启问题。

为了进行一步排查重启原因,我让用户用pm.lastReson()这个接口打印开机原因值。

客户反馈:“我们有平台上传数据, pm.lastReson()是006异常重启 ”。

根据接口文档相关说明来看,确实不是内部看门狗导致的重启,是异常重启导致的。

接口文档详见:

https://wiki.luatos.com/api/pm.html#pm-lastreson

图片

二、了解背景

心想看不出啥具体原因,先了解一下客户使用背景吧,说不定会有啥线索。

我问:“之前正常,现在是用不了,一直在重启吗?”

客户反馈:“也不是吧,一开始是好的,然后挂了几个月一直重启,最近发现,昨天我拿过来挂了一天又正常,然后今天又重启,老化区就这个设备会重启,其他同固件是正常的。”

我又问:“换DEMO会重启吗? 确认一下是硬件问题,还是软件问题。

客户反馈:“ 今天测试过,只下载脚本是一定会出问题。 然后我刚刚重新下载底层和脚本,目前五分钟没有重启。”

看上去应该不是硬件问题,可能是软件引起的。心想让客户用最新版本试一下吧,确认一下还会不会出现问题。

客户反馈:“我们是因为有一个设备到客户手上有这个问题是V1108的,然后老化区只有这个设备也是异常重启,是V1106的,然后就看的这个,后面重新烧录1106的底层也是正常的,这设备挺难出现这个问题的,只能我们这边挂着测一下。”

看来又是一个令人头大的重启问题,要等客户提供底层日志来进一步排除问题了。

三、重要线索


客户把挂测的底层日志提供过来了,打开后确实看到了RamDumpData开头的死机信息

图片

打开上面的RamDumpData出现如下信息:

图片

我赶紧和研发大佬确认,可能是啥情况。大佬问答大概率是FLASH坏掉了,让和客户确认不是有KV相关的操作。

客户回答,确实有KV的操作。

本文提到的KV:

KV数据库 ——指的是LuatOS中的FSKV库,提供键值对数据库功能,数据持久化在Flash上,使用独立的KV分区,使用LuaTools刷机时可选择清空,默认是不清空。由Flash的特性决定了,写入次数是有限的,频繁写入导致超限后,将无法设置/更新数据,导致系统异常。

为了进一步验证猜测,让客户做了如下测试:

问:“死机重启后,烧录不清除KV试试看还会不会重启,或者去除KV相关操作看还会不会重启。”

答:“KV操作挺多的,不好清除,我试下烧录不清除KV,有时候断电过一会就好了,不是很好复现,我先试试烧录不清除KV。”

客户反馈:“不清除KV也会有重启。”

问:“重新烧录底层的时候,有没有清理KV。”

答:“有”…

根据此前客户反馈和当前测试来看,应该是FALSH模块有些区域坏掉了。

四、确认猜测


至此,可以说这个重启的原因基本是确认了,导致模块令人琢磨不透的重启问题的“捣蛋鬼”也基础上算是给揪出来了。但是,还是需做进一步的测试来确定猜测。

研发大佬给了一下测试固件,来确认猜测是否正确。

图片

经过测试验证后,确定是FALSH部分区域坏掉引起的重启。

至此这个“重启案件”算是侦破了。

给客户的建议:

要改脚本,需要大幅度减少写KV的次数,防止破坏模块重启的“捣蛋鬼”再次出来捣乱。

温馨提示:

KV的写寿命是10万次,过于频繁操作可能会导致FLASH坏掉,引起设备反复重启。

因此,在写代码的时候要尽量减少写KV的次数。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8580

    浏览量

    151046
  • 烧录
    +关注

    关注

    8

    文章

    259

    浏览量

    35563
  • LuatOS
    +关注

    关注

    0

    文章

    76

    浏览量

    1937
收藏 人收藏

    评论

    相关推荐

    PCM2704的ROM编程好了,竟然是乱码,为什么?

    的说法将ROM编程好,接入系统,插入USB后,显示正在安装驱动,没想到安装完毕后竟然名称显示为乱码,百思不得其解。望各位大神帮我看看问题出在哪里 这是德州仪器官方数据表中关于ROM的三段重要描述 我按照说明编程如下 可是插入电脑后显示是乱码 求助大神,问题出在哪里?
    发表于 11-05 08:04

    单片机异常复位的原因

    单片机异常复位是指单片机在正常工作过程中,非预期地返回到初始状态或重启。这种异常复位现象可能由多种因素引起,以下是对单片机异常复位原因的详细分析:
    的头像 发表于 10-17 17:56 846次阅读

    远程升级频频失败?原因竟然是

    ​最近有客户反馈在乡村里频繁出现掉线的情况。 赶紧排查原因! 通过换货、换SIM卡对比排查测试,发现只有去年采购的那批模块在客户环境附近会出现掉线的情况,而今年采购的模块批次就不会掉线。。。 继续追究原因,联系对应的销售工作人员, 了解到差异就是模块内的固件版本不同。 去年采购的那批模块版本是: AirM2M_780E_LTE_AT_V1138 今年采购的那批模块版本是: AirM2M_780E_LTE_AT_V1162 看来是高版本对网络做了优化,但在这个地区出货的也有150多台
    的头像 发表于 10-14 07:07 167次阅读
    远程升级频频失败?原因<b class='flag-5'>竟然是</b>…

    异常重启怎么破?多方排查后,原因竟然是。。。

    ​又是异常重启。。。让人摸不到头脑。 这几天,看到客户上报了重启问题,说是查不出原因。 重启现象是 ——有极个别设备在工作中不定时反复异常
    的头像 发表于 10-14 07:04 255次阅读
    <b class='flag-5'>异常</b><b class='flag-5'>重启</b>怎么破?多方排查后,原因<b class='flag-5'>竟然是</b>。。。

    用线性电桥测Pt100,输出不正确是怎么回事?

    用线性电桥测Pt100,即上图中的RTD1,运放选用TLC2274,电路用面包板搭建好了,但是输出不正确。其中2脚电压为+3.6V,3脚为+2.6V,输出竟然是正的+1.39V,求解?
    发表于 09-06 06:35

    DRV8662没有输出信号是哪里的问题?

    了50nf的独石电容作为假负载,仍然不行。实在是令人头疼。 都折腾了半月了,就是查不出毛病,求教各位,多谢多谢。
    发表于 08-27 06:24

    电磁炉检电阻怎么测好坏

    电磁炉是一种利用电磁感应原理将电能转换为热能的厨房电器,广泛应用于家庭、餐馆、食堂等场所。电磁炉的检功能是其核心功能之一,通过检测具的电阻值来判断具是否符合电磁炉的使用要求。 一、电磁炉检
    的头像 发表于 07-15 09:27 1448次阅读

    长时间发送344个字节的UDP报文,出现overflow the heap_size并导致系统异常重启怎么解决?

    ;pmT\"(stack_size = 0,task handle = 3fff56c8) overflow the heap_size. 2,异常重启 ShowCritical:0 ets
    发表于 07-11 07:55

    全球最大碳化硅工厂,竟然是车企建造的?

    在量产车型上使用碳化硅芯片的车企之一,而作为一家追求全产业链自主的车企,比亚迪实际上在SiC领域也有极为丰富的布局。   比亚迪的SiC 布局——“车圈Wolfspeed ”   可能很难想象,作为一家车企,比亚迪在SiC领域的布局链条竟然比一
    的头像 发表于 06-27 00:58 6530次阅读

    stm32 +lwip1.3.1客户端异常导致网络ping不通怎么解决?

    stm32上运行lwip作为服务器,如果客户端异常了,发现在客户端再也ping不通 网络如果异常,交换机挂了,重启后,客户端怎么都ping不通stm32 有没有遇到同样的问题? 不是tcp的pcb被占用,ping都不能通,lw
    发表于 04-22 07:30

    电路中令人头大的各种电容元器件

    电容是由两块平行的导电极板所构成,充电时以电场形式进行能量储存。并可以在放电电路中把储存的能量释放。
    发表于 03-28 10:11 398次阅读
    电路中<b class='flag-5'>令人头</b>大的各种电容元器件

    STM32H743异常重启的原因有哪些?

    里面开了一个线程喂狗,喂狗线程优先级是最高的,喂狗周期是rt_thread_mdelay 100个毫秒。 现在遇到问题是,10几台设备,每次连续运行,10几个小时后就有1-2台重启了,由于不能连接
    发表于 03-27 07:03

    STM32H745启动与烧录异常的原因?

    硬件平台:Nucleo开发板 软件:CubeMX+KEIL 问题描述:烧录异常,启动异常 问题详情: 使用官方的Nucleo评估板,烧录程序只能烧录M7内核的程序,M4内核需要拖曳烧录,然后程序运行
    发表于 03-06 06:35

    N9H20 GPIO上电竟然是高电平,有没有办法解决?

    一直很纳闷,GPIO上电竟然是高电平。有没有办法解决,是不是要改动启动程序才能解决问题?
    发表于 01-17 08:27

    NAS设备及硬盘的选购与安装使用

    面对海量的存储需求难题,众多企业与工作室往往会首选NAS存储解决方案。但市面上NAS设备与硬盘产品繁多,如何组建适合自己的一套NAS系统也常常令人头疼
    的头像 发表于 01-07 15:39 1163次阅读
    NAS设备及硬盘的选购与安装使用