0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

令人頭疼的異常重啟,竟然是KV的鍋…

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-09-26 18:14 ? 次閱讀

?在技術(shù)支持群,看到有用戶報(bào)了一個(gè)不明原因的重啟問題。 重啟現(xiàn)象是 ——有極個(gè)別設(shè)備在工作中不定時(shí)反復(fù)異常重啟,大部分設(shè)備正常;反復(fù)重啟設(shè)備,有時(shí)候又能持續(xù)正常工作。

隔著屏幕都感覺到了客戶的著急和無奈,我決定和這位用戶一起揪出這個(gè)“搗蛋鬼”。

圖片?

一、查找線索

按常規(guī)流程先詢問用戶開發(fā)模塊、開發(fā)方式,并要求提供對應(yīng)日志。經(jīng)確認(rèn)如下:

開發(fā)模塊:Air780E

最新資料:www.air780e.cn

開發(fā)方式:LuatOS

開發(fā)教程

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

客戶提供日志反饋:

腳本日志沒報(bào)錯(cuò)誤,就是不定時(shí)卡住一會,然后就重啟了。

圖片?

第一反應(yīng):不會是死循環(huán)導(dǎo)致的重啟吧?

用戶反饋:“沒有死循環(huán),任務(wù)里面都有延時(shí)的,而且大部分設(shè)備是正常的。且重啟的時(shí)間也不定,最短4秒,最長是三分多鐘,看起來不符合20秒的看門狗重啟呀,而且設(shè)備昨天有正常工作一天,然后異常的時(shí)候就持續(xù)一直異常。但是這個(gè)固件的絕大部分設(shè)備是正常工作,不會異常重啟的。”

看來不是死循環(huán)導(dǎo)致的看門狗重啟問題。

為了進(jìn)行一步排查重啟原因,我讓用戶用pm.lastReson()這個(gè)接口打印開機(jī)原因值。

客戶反饋:“我們有平臺上傳數(shù)據(jù), pm.lastReson()是006異常重啟 ”。

根據(jù)接口文檔相關(guān)說明來看,確實(shí)不是內(nèi)部看門狗導(dǎo)致的重啟,是異常重啟導(dǎo)致的。

接口文檔詳見:

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

圖片?

二、了解背景

心想看不出啥具體原因,先了解一下客戶使用背景吧,說不定會有啥線索。

我問:“之前正常,現(xiàn)在是用不了,一直在重啟嗎?”

客戶反饋:“也不是吧,一開始是好的,然后掛了幾個(gè)月一直重啟,最近發(fā)現(xiàn),昨天我拿過來掛了一天又正常,然后今天又重啟,老化區(qū)就這個(gè)設(shè)備會重啟,其他同固件是正常的?!?/p>

我又問:“換DEMO會重啟嗎? 確認(rèn)一下是硬件問題,還是軟件問題。

客戶反饋:“ 今天測試過,只下載腳本是一定會出問題。 然后我剛剛重新下載底層和腳本,目前五分鐘沒有重啟。”

看上去應(yīng)該不是硬件問題,可能是軟件引起的。心想讓客戶用最新版本試一下吧,確認(rèn)一下還會不會出現(xiàn)問題。

客戶反饋:“我們是因?yàn)橛幸粋€(gè)設(shè)備到客戶手上有這個(gè)問題是V1108的,然后老化區(qū)只有這個(gè)設(shè)備也是異常重啟,是V1106的,然后就看的這個(gè),后面重新燒錄1106的底層也是正常的,這設(shè)備挺難出現(xiàn)這個(gè)問題的,只能我們這邊掛著測一下。”

看來又是一個(gè)令人頭大的重啟問題,要等客戶提供底層日志來進(jìn)一步排除問題了。

三、重要線索


客戶把掛測的底層日志提供過來了,打開后確實(shí)看到了RamDumpData開頭的死機(jī)信息。

圖片?

打開上面的RamDumpData出現(xiàn)如下信息:

圖片?

我趕緊和研發(fā)大佬確認(rèn),可能是啥情況。大佬問答大概率是FLASH壞掉了,讓和客戶確認(rèn)不是有KV相關(guān)的操作。

客戶回答,確實(shí)有KV的操作。

本文提到的KV:

KV數(shù)據(jù)庫 ——指的是LuatOS中的FSKV庫,提供鍵值對數(shù)據(jù)庫功能,數(shù)據(jù)持久化在Flash上,使用獨(dú)立的KV分區(qū),使用LuaTools刷機(jī)時(shí)可選擇清空,默認(rèn)是不清空。由Flash的特性決定了,寫入次數(shù)是有限的,頻繁寫入導(dǎo)致超限后,將無法設(shè)置/更新數(shù)據(jù),導(dǎo)致系統(tǒng)異常。

為了進(jìn)一步驗(yàn)證猜測,讓客戶做了如下測試:

問:“死機(jī)重啟后,燒錄不清除KV試試看還會不會重啟,或者去除KV相關(guān)操作看還會不會重啟。”

答:“KV操作挺多的,不好清除,我試下燒錄不清除KV,有時(shí)候斷電過一會就好了,不是很好復(fù)現(xiàn),我先試試燒錄不清除KV。”

客戶反饋:“不清除KV也會有重啟?!?/p>

問:“重新燒錄底層的時(shí)候,有沒有清理KV?!?/p>

答:“有”…

根據(jù)此前客戶反饋和當(dāng)前測試來看,應(yīng)該是FALSH模塊有些區(qū)域壞掉了。

四、確認(rèn)猜測


至此,可以說這個(gè)重啟的原因基本是確認(rèn)了,導(dǎo)致模塊令人琢磨不透的重啟問題的“搗蛋鬼”也基礎(chǔ)上算是給揪出來了。但是,還是需做進(jìn)一步的測試來確定猜測。

研發(fā)大佬給了一下測試固件,來確認(rèn)猜測是否正確。

圖片?

經(jīng)過測試驗(yàn)證后,確定是FALSH部分區(qū)域壞掉引起的重啟。

至此這個(gè)“重啟案件”算是偵破了。

給客戶的建議:

要改腳本,需要大幅度減少寫KV的次數(shù),防止破壞模塊重啟的“搗蛋鬼”再次出來搗亂。

溫馨提示:

KV的寫壽命是10萬次,過于頻繁操作可能會導(dǎo)致FLASH壞掉,引起設(shè)備反復(fù)重啟。

因此,在寫代碼的時(shí)候要盡量減少寫KV的次數(shù)。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8598

    瀏覽量

    151163
  • 燒錄
    +關(guān)注

    關(guān)注

    8

    文章

    259

    瀏覽量

    35583
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    1944
收藏 人收藏

    評論

    相關(guān)推薦

    PCM2704的ROM編程好了,竟然是亂碼,為什么?

    的說法將ROM編程好,接入系統(tǒng),插入U(xiǎn)SB后,顯示正在安裝驅(qū)動,沒想到安裝完畢后竟然名稱顯示為亂碼,百思不得其解。望各位大神幫我看看問題出在哪里 這是德州儀器官方數(shù)據(jù)表中關(guān)于ROM的三段重要描述 我按照說明編程如下 可是插入電腦后顯示是亂碼 求助大神,問題出在哪里?
    發(fā)表于 11-05 08:04

    單片機(jī)異常復(fù)位的原因

    單片機(jī)異常復(fù)位是指單片機(jī)在正常工作過程中,非預(yù)期地返回到初始狀態(tài)或重啟。這種異常復(fù)位現(xiàn)象可能由多種因素引起,以下是對單片機(jī)異常復(fù)位原因的詳細(xì)分析:
    的頭像 發(fā)表于 10-17 17:56 ?924次閱讀

    遠(yuǎn)程升級頻頻失敗?原因竟然是

    ?最近有客戶反饋在鄉(xiāng)村里頻繁出現(xiàn)掉線的情況。 趕緊排查原因! 通過換貨、換SIM卡對比排查測試,發(fā)現(xiàn)只有去年采購的那批模塊在客戶環(huán)境附近會出現(xiàn)掉線的情況,而今年采購的模塊批次就不會掉線。。。 繼續(xù)追究原因,聯(lián)系對應(yīng)的銷售工作人員, 了解到差異就是模塊內(nèi)的固件版本不同。 去年采購的那批模塊版本是: AirM2M_780E_LTE_AT_V1138 今年采購的那批模塊版本是: AirM2M_780E_LTE_AT_V1162 看來是高版本對網(wǎng)絡(luò)做了優(yōu)化,但在這個(gè)地區(qū)出貨的也有150多臺
    的頭像 發(fā)表于 10-14 07:07 ?174次閱讀
    遠(yuǎn)程升級頻頻失?。吭?b class='flag-5'>竟然是</b>…

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

    ?又是異常重啟。。。讓人摸不到頭腦。 這幾天,看到客戶上報(bào)了重啟問題,說是查不出原因。 重啟現(xiàn)象是 ——有極個(gè)別設(shè)備在工作中不定時(shí)反復(fù)異常
    的頭像 發(fā)表于 10-14 07:04 ?268次閱讀
    <b class='flag-5'>異常</b><b class='flag-5'>重啟</b>怎么破?多方排查后,原因<b class='flag-5'>竟然是</b>。。。

    用線性電橋測Pt100,輸出不正確是怎么回事?

    用線性電橋測Pt100,即上圖中的RTD1,運(yùn)放選用TLC2274,電路用面包板搭建好了,但是輸出不正確。其中2腳電壓為+3.6V,3腳為+2.6V,輸出竟然是正的+1.39V,求解?
    發(fā)表于 09-06 06:35

    DRV8662沒有輸出信號是哪里的問題?

    了50nf的獨(dú)石電容作為假負(fù)載,仍然不行。實(shí)在是令人頭疼。 都折騰了半月了,就是查不出毛病,求教各位,多謝多謝。
    發(fā)表于 08-27 06:24

    電磁爐檢電阻怎么測好壞

    電磁爐是一種利用電磁感應(yīng)原理將電能轉(zhuǎn)換為熱能的廚房電器,廣泛應(yīng)用于家庭、餐館、食堂等場所。電磁爐的檢功能是其核心功能之一,通過檢測具的電阻值來判斷具是否符合電磁爐的使用要求。 一、電磁爐檢
    的頭像 發(fā)表于 07-15 09:27 ?1486次閱讀

    長時(shí)間發(fā)送344個(gè)字節(jié)的UDP報(bào)文,出現(xiàn)overflow the heap_size并導(dǎo)致系統(tǒng)異常重啟怎么解決?

    ;pmT\"(stack_size = 0,task handle = 3fff56c8) overflow the heap_size. 2,異常重啟 ShowCritical:0 ets
    發(fā)表于 07-11 07:55

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

    在量產(chǎn)車型上使用碳化硅芯片的車企之一,而作為一家追求全產(chǎn)業(yè)鏈自主的車企,比亞迪實(shí)際上在SiC領(lǐng)域也有極為豐富的布局。 ? 比亞迪的SiC 布局——“車圈Wolfspeed ” ? 可能很難想象,作為一家車企,比亞迪在SiC領(lǐng)域的布局鏈條竟然比一
    的頭像 發(fā)表于 06-27 00:58 ?6564次閱讀

    stm32 +lwip1.3.1客戶端異常導(dǎo)致網(wǎng)絡(luò)ping不通怎么解決?

    stm32上運(yùn)行l(wèi)wip作為服務(wù)器,如果客戶端異常了,發(fā)現(xiàn)在客戶端再也ping不通 網(wǎng)絡(luò)如果異常,交換機(jī)掛了,重啟后,客戶端怎么都ping不通stm32 有沒有遇到同樣的問題? 不是tcp的pcb被占用,ping都不能通,lw
    發(fā)表于 04-22 07:30

    電路中令人頭大的各種電容元器件

    電容是由兩塊平行的導(dǎo)電極板所構(gòu)成,充電時(shí)以電場形式進(jìn)行能量儲存。并可以在放電電路中把儲存的能量釋放。
    發(fā)表于 03-28 10:11 ?414次閱讀
    電路中<b class='flag-5'>令人頭</b>大的各種電容元器件

    STM32H743異常重啟的原因有哪些?

    里面開了一個(gè)線程喂狗,喂狗線程優(yōu)先級是最高的,喂狗周期是rt_thread_mdelay 100個(gè)毫秒。 現(xiàn)在遇到問題是,10幾臺設(shè)備,每次連續(xù)運(yùn)行,10幾個(gè)小時(shí)后就有1-2臺重啟了,由于不能連接
    發(fā)表于 03-27 07:03

    STM32H745啟動與燒錄異常的原因?

    硬件平臺:Nucleo開發(fā)板 軟件:CubeMX+KEIL 問題描述:燒錄異常,啟動異常 問題詳情: 使用官方的Nucleo評估板,燒錄程序只能燒錄M7內(nèi)核的程序,M4內(nèi)核需要拖曳燒錄,然后程序運(yùn)行
    發(fā)表于 03-06 06:35

    N9H20 GPIO上電竟然是高電平,有沒有辦法解決?

    一直很納悶,GPIO上電竟然是高電平。有沒有辦法解決,是不是要改動啟動程序才能解決問題?
    發(fā)表于 01-17 08:27

    NAS設(shè)備及硬盤的選購與安裝使用

    面對海量的存儲需求難題,眾多企業(yè)與工作室往往會首選NAS存儲解決方案。但市面上NAS設(shè)備與硬盤產(chǎn)品繁多,如何組建適合自己的一套NAS系統(tǒng)也常常令人頭疼。
    的頭像 發(fā)表于 01-07 15:39 ?1173次閱讀
    NAS設(shè)備及硬盤的選購與安裝使用