精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

flashDB/Easyflash觸發(fā)GC導致系統(tǒng)卡死的解決方法分享

冬至子 ? 來源:用戶名由3_15位 ? 作者:用戶名由3_15位 ? 2023-10-16 14:56 ? 次閱讀

使用情況

芯片:SMT32F429
操作系統(tǒng):RTT 5.0.0
文件系統(tǒng):littlefs + romfs
flashdb:kvdb + 文件模式 使用

使用場景

分配5個扇區(qū)情況

創(chuàng)建一個線程,1秒寫入一次當前時間戳至kvdb數(shù)據(jù)庫中

發(fā)現(xiàn)如果分配五個扇區(qū),前四個扇區(qū)都可以正常讀寫。

當五個扇區(qū)都寫滿的時候,需要搬運數(shù)據(jù)到第0扇區(qū)去。

日志如下,沒有空扇區(qū)了。

The remain empty sector is 1, GC threshold is 1.

這個日志已出現(xiàn),系統(tǒng)就會卡死,看門狗復位

嘗試debug調(diào)試,總是調(diào)到?jīng)]有使用的函數(shù)里面,函數(shù)地址0x00000xx開頭。

解決方法

經(jīng)過不斷嘗試,ps打印當前線程狀態(tài)時,發(fā)現(xiàn)時間戳保存線程的最大使用率高達81%.一般來說都要控制在75%左右合適。

分析是不是應(yīng)該堆棧不夠?qū)е孪到y(tǒng)卡死

將該線程從2048改為4096后,不會出現(xiàn)卡死問題了。線程的最大使用率變?yōu)?1%

分析

flshdb在扇區(qū)都滿的情況下,會進行Collect操作。這個操作是在當前線程完成的,會增加占用率。

然而這個運行操作并不是會頻繁出現(xiàn)的,所以很難判斷到是堆棧不夠?qū)е碌膯栴}。

建議

能否增加一個異步模式來專門執(zhí)行g(shù)c與Collect操作?

就像ulog的異步線程的方式那樣。

寫入數(shù)據(jù)庫并不要求實時性,只需要確保數(shù)據(jù)的準確就好了。

異步方式需要一個緩沖區(qū),緩沖區(qū)滿了才能傳入數(shù)據(jù),可能導致緩沖區(qū)未滿時掉電,導致數(shù)據(jù)缺失了一部分。

但是這個情況,可以添加一個函數(shù),立刻刷新緩沖區(qū)。然后給用戶使用。 用戶自己實現(xiàn)掉電保存與硬件。所以可以增加一個異步線程的選項,提供用戶使用。看用戶是選擇實時,還是效率。

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

    關(guān)注

    10

    文章

    559

    瀏覽量

    70746
  • STM32F429
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    10648
  • RTThread
    +關(guān)注

    關(guān)注

    8

    文章

    132

    瀏覽量

    40811
收藏 人收藏

    評論

    相關(guān)推薦

    外部中斷誤觸發(fā)的原因分析和解決方法

    今天在寫外部中斷的程序的時候,發(fā)現(xiàn)中斷特別容易受到干擾,我把手放在對應(yīng)的中斷引腳上,中斷就一直觸發(fā),沒有停過。經(jīng)過一天的學習,找到了幾個解決方法,所以寫了這篇筆記。如果你的中斷也時不時會誤觸發(fā),可以對照找一下原因。
    的頭像 發(fā)表于 11-23 17:09 ?3127次閱讀
    外部中斷誤<b class='flag-5'>觸發(fā)</b>的原因分析和<b class='flag-5'>解決方法</b>

    一種優(yōu)雅解決MySQL驅(qū)動中虛引用導致GC耗時較長問題的方法

    NonRegisteringDriver 類有個虛引用集合 connectionPhantomRefs 用于存儲所有的數(shù)據(jù)庫連接,NonRegisteringDriver.trackConnection 方法負責把新創(chuàng)建的連接放入集合,虛引用隨著時間積累越來越多,導致
    的頭像 發(fā)表于 12-20 09:52 ?894次閱讀

    接地網(wǎng)阻值偏大的原因及解決方法

    不足:   土壤濕度也是影響接地網(wǎng)阻值的重要因素之一。如果土壤濕度不足,那么就會導致土壤電阻增加,從而使得整個接地系統(tǒng)的電阻增加。   解決方法:增加土壤濕度或者采取其他措施來減小土壤電阻。   3
    發(fā)表于 06-17 09:19

    CC2640的SPI使用導致程序卡死

    CC2640的SPI使用,是參照這個網(wǎng)址中的方法做來的,發(fā)現(xiàn)使用TLwrite就會導致程序卡死,不使用TLwrite不卡死,請問是什么原因?方法
    發(fā)表于 03-22 14:37

    請問為什么AM3352 SD卡 mmcblk0: retrying using single block read導致系統(tǒng)卡死

    本帖最后由 一只耳朵怪 于 2018-6-21 09:00 編輯 開發(fā)過程中發(fā)現(xiàn),人為割斷data[3]模擬sd卡接觸不良現(xiàn)象,導致系統(tǒng)卡死。log中會出現(xiàn)mmcblk0: retrying
    發(fā)表于 06-21 04:56

    EasyFlash 1CR墨盒的資料分享

    些情況下,原始的 EasyFlash1 是可行的方法EasyFlash 1CR是來自 Commodore 64/128 的墨盒,其功能與Thomas Giesel 的 EasyFlash
    發(fā)表于 06-29 06:23

    SPI Flash使用flashdb無法進行讀寫操作怎么辦

    有用過 flashdb 的嗎, 我這初始化啥的都好著的, 只有上電的適合能讀到數(shù)據(jù),完事兒就卡死
    發(fā)表于 09-29 11:25

    RK3399系統(tǒng)經(jīng)常卡死的問題及其解決方法

    Platform: RK3399OS: Android 8.1現(xiàn)象:RK3399系統(tǒng)經(jīng)常卡死問題11.RK3399死機并且看門狗無法正常工作,芯片溫度一直上升解決方法:增加官方推薦的過熱復位電路
    發(fā)表于 11-16 17:09

    flashDB / Easyflash觸發(fā)GC導致系統(tǒng)卡死解決方法分享

    is 1, GC threshold is 1.這個日志已出現(xiàn),系統(tǒng)就會卡死,看門狗復位嘗試debug調(diào)試,總是調(diào)到?jīng)]有使用的函數(shù)里面,函數(shù)地址0x00000xx開頭。解決方法經(jīng)過不
    發(fā)表于 11-21 15:04

    ISP串口下載時卡死解決方法

    根據(jù)問題復現(xiàn)時的現(xiàn)象以及代碼調(diào)試,確定為卡死在 windows 操作系統(tǒng)的 USB 轉(zhuǎn)串口設(shè)備的驅(qū)動中,也就是 USB 轉(zhuǎn)串口設(shè)備出了問題。卡死時使用 USB 轉(zhuǎn)串口設(shè)備,USB 轉(zhuǎn)串口芯片為
    發(fā)表于 10-18 07:38

    光驅(qū)讀盤能力差的解決方法一則

    光驅(qū)讀盤能力差的解決方法一則 光驅(qū)使用久了就會出現(xiàn)有的光盤能讀,有的光盤不能讀,或是有的光盤讀到一半就出現(xiàn)卡死的現(xiàn)象,
    發(fā)表于 02-24 13:38 ?765次閱讀

    導致開關(guān)電源嘯叫的六種情況及解決方法

    導致開關(guān)電源嘯叫的六種情況及解決方法(深圳市中遠通電源技術(shù)開發(fā)有限公司怎么樣)-導致開關(guān)電源嘯叫的六種情況及解決方法
    發(fā)表于 09-24 17:14 ?58次下載
    <b class='flag-5'>導致</b>開關(guān)電源嘯叫的六種情況及<b class='flag-5'>解決方法</b>

    Systick_Handler B.卡死處理方法

    Systick_Handler B.卡死處理方法注:鄙人在學習國產(chǎn)GD32芯片和STM32芯片做嵌入式時候出現(xiàn)過單片機卡死在*.s啟動文件Systick_Handler B.處現(xiàn)做系列總結(jié)
    發(fā)表于 12-03 15:21 ?21次下載
    Systick_Handler   B.<b class='flag-5'>卡死</b>處理<b class='flag-5'>方法</b>

    舵機使用外部電源供電導致舵機不轉(zhuǎn)或者向一個方向轉(zhuǎn)動直到卡死的原因和解決方法

    ,弄弄電源,C,干脆不轉(zhuǎn)了。有問題,一定有問題。百度、搜狗、找到啦。問題原因外接電源時的接線圖如下,導致沒有共地,解決方法既然原因時沒有共地那么就讓它們共地好了我是這么解決的:PS:搞...
    發(fā)表于 01-06 16:40 ?1次下載
    舵機使用外部電源供電<b class='flag-5'>導致</b>舵機不轉(zhuǎn)或者向一個方向轉(zhuǎn)動直到<b class='flag-5'>卡死</b>的原因和<b class='flag-5'>解決方法</b>

    導致MySQL索引失效的情況以及相應(yīng)的解決方法

    導致MySQL索引失效的情況以及相應(yīng)的解決方法? MySQL索引的目的是提高查詢效率,但有些情況下索引可能會失效,導致查詢變慢或效果不如預期。下面將詳細介紹導致MySQL索引失效的情況
    的頭像 發(fā)表于 12-28 10:01 ?731次閱讀