色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

英創信息技術WinCE文件系統測試及故障分析簡介

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-02-07 11:15 ? 次閱讀

WINCE文件系統的偶發故障一直是WINCE系統最為棘手的問題,盡管出現故障的幾率不高,但對設備的穩定運行造成嚴重影響。為了保證基于WinCE的嵌入式系統能穩定可靠運行,英創公司對WINCE文件系統進行了長期分析測試,希望能找到有效辦法來規避WINCE文件系統故障。本文主要介紹英創在這方面的工作及獲得的成果。

先前的工作

過去多年,英創公司陸續做過很多工作改善WINCE文件系統,也取得了一些成效。

1.將文件系統升級成exfat。

2.封裝文件讀寫庫,增加緩存空間,使文件讀寫盡量以整塊形式操作。

3.升級數據庫版本。

4.實現WINCE5->WINCE6->WEC7的升級。

5.修改NandFlash的ECC校驗。

6.將內核注冊表類型由HIVE-Based注冊表替換為RAM-Based注冊表并測試其穩定性。

7.增加文件備份恢復工具BFS。

先前的實驗工作

因為文件系統故障極低,使得通過實驗程序復現其故障變得很困難。在實驗室里通常大量板卡滿負荷連續工作1周以上可能才會發現有板卡出現文件系統故障。因為在實驗室運行程序始終與用戶現場使用存在差異,通過同樣CPU負載率完成近似文件讀寫量,確很難復現文件系統故障。英創公司也采用了很多不同的測試方法進行測試,例如:

數據輪詢讀寫測試

基礎的文件讀寫測試程序,程序滿負荷向nandflash寫記錄文件,寫滿后刪除最早記錄繼續添加新記錄。英創所有板卡均能通過該測試,該實驗程序也很難測試出文件系統故障。

數據庫讀寫測試1

程序為C#數據庫程序,程序滿負荷向SQLCE數據庫中不停添加記錄,該實驗測試了WINCE5,WINCE6的板子,其中WINCE5的板子有測試出文件系統故障,整個測試周期較長。

對該測試的分析,認為WINCE6升級了文件系統和數據庫版本,所以表現比WINCE5好。

數據庫讀寫測試2

程序分別為C代碼的SQLCE數據庫程序和SQLite數據庫程序,多線程滿負荷對同數據庫進行讀寫操作。SQLCE數據庫程序表現正常,SQLite數據庫程序只有在單線程時表現正常。查看SQLite源碼發現,WINCE中使用的SQLite庫精簡掉了線程安全模式,所以不能保證多線程對數據庫同時操作的穩定性。同時發現SQLite數據庫每次添加數據,都會新建一個臨時文件然后刪除,每次添加數據都會重新打開數據庫然后關閉,導致SQLite的CPU負載遠遠高于SQLCE。

對該測試的分析,目前版本的SQLite數據庫并適合在WINCE平臺上使用

1.數據滿負荷讀寫時增加隨機斷電

運行之前文件讀寫程序,并增加外部定時斷電,用于模擬實際現場環境可能出現的掉電情況。測試發現運行一段時間后發現WINCE6板子出現了文件系統故障,WEC7板子沒有出現。

該測試英創分析認為CPU滿負荷讀寫狀態下突然掉電,可能是導致WINCE文件系統故障的主要原因。WEC7可能對文件系統做了近一步優化,所以表現比WINCE6好。因為設備意外斷電總是不可避免,所以英創增加了備份還原工具來解決該問題。

2.多線程文件讀寫

根據客戶反饋,編寫測試程序模擬客戶應用程序對文件系統進行讀寫操作,使用多個線程分別操作不同的文件進行讀寫。當實驗讀寫數據量已經遠遠超過客戶估算數據量,依然不能復現出客戶反饋的文件系統故障。

該測試英創分析認為測試程序始終和客戶應用程序存在巨大差異,這種差異導致實驗難以復現客戶反饋故障。

3.單文件多線程共享讀寫測試

同樣根據客戶反饋,編寫測試程序模擬客戶應用程序對文件系統進行讀寫操作,這一次,使用多個線程同時對同個文件進行讀寫操作。當實驗讀寫數據量已經遠遠超過客戶估算數據量時,同樣無法復現出客戶反饋的文件系統故障。

近期的實驗發現

在近2個月里,我們采用了新的測試方法來檢驗FATFS。測試程序通過Timer,分別以60ms,90ms,150ms間隔讀寫3個不同文件。與以往測試的最大不同在于,之前測試是在文件中不停的添加新數據,此次測試是以覆蓋的形式反復讀寫文件同一位置,即文件開頭2048字節數據。

該實驗讀寫量遠遠低于之前的測試,略60KB/s,CPU負載平時在20%以下,但是穩定在短時間內測試出文件系統故障(通常在一天內就能觀察到文件系統故障)。此次試驗的意義在于大大降低了測試規模,(此前由于文件系統故障出現幾率太低,測試規模小了很可能測試不出結果。)

根據不同的實驗條件,整個實驗項目由十幾個具體實驗組成,實驗數據見文章末尾附表。以下簡要描述各個實驗的情況。

1 - 3號實驗

實驗測試了英創EM928X平臺下所有產品,發現不同硬件的產品在一定條件下均存在文件系統故障的概率,說明文件系統故障與硬件關系不大。

實驗測試RAM注冊表,和HIVE注冊表的主板,實驗結果說明文件系統故障與主板內核中注冊表類型關系不大。

4 - 5號實驗

實驗中升級了測試程序,可以設置程序運行時間。實驗采用對比的形式,一組實驗板運行時間為90s,另一組實驗板不限制測試時間,而外部斷電時間為150s。這樣,保證第一組測試版在外部斷電時,沒有進行文件操作。

實驗結果,兩組測試均出現了文件系統故障,實驗結果看來,文件系統故障并非單純因為進行文件讀寫操作時意外斷電導致。

實驗還修改了ECC校驗,從校驗1位改為校驗8位。實驗結果看來,文件系統故障與ECC校驗關系也不大。

6 - 8號實驗

實驗測試了電源對文件系統的影響,實驗結果看來,文件系統故障與電源關系不大。

實驗測試對比了大容量FLASH和小容量FLASH,實驗結果看來,文件系統故障與FLASH容量大小沒有直接的關系,但容量越大故障出現的概率越小。

9號實驗

采用了2組不同測試程序進行對比實驗,一套測試程序為原測試程序,一套測試程序增加一組判斷,當CPU負載率超過70%時暫時停止文件讀寫,當CPU負載率重新降到70%以下,再進行文件操作。

實驗發現采用了監控CPU負載策略的板子再沒有出現文件系統故障。

10 - 13號實驗

為了排除程序差異性,重新編寫測試程序,使測試使用相同測試程序,僅通過不同配置文件設置不同的文件讀寫策略。

實驗再次驗證,采用了監控CPU負載策略的板子沒有發現文件系統故障,至少證明通過該策略,能大大降低文件系統故障概率。

進一步觀察發現,板子每運行1分鐘左右,大概文件重復寫1000次左右時,CPU負載率會迅速升高到100%,這里應該是文件系統在后臺做寫平衡注操作。如果此時停止文件讀寫,CPU負載會很快下降至正常水平。反之,系統很大概率會一直維持CPU負載率100%狀態。分析認為在系統進行寫平衡操作時保持高頻率文件讀寫,容易導致應用程序文件操作與后臺的寫平衡操作構成某種互鎖而無法完成。

注:嵌入式板卡所使用的nandflash在寫之前需要擦除,而nandflash只有大約10萬次的擦寫壽命。為了增加nandflash的使用壽命,文件系統會采用算法讓程序均與寫到nandflash各個位置,所以當文件系統發現nandflash某個位置讀寫過于頻繁,就會將該處數據轉移到其它位置上。

14 - 17號實驗

Timer實際上是并在主線程里的單線程操作,客戶在實際使用時更多使用多線程進行讀寫操作。14號至17號實驗使用修改后的測試程序,程序使用多線程進行文件讀寫操作,讀寫間隔為50ms、100ms、150ms,與之前相似。實驗發現,使用多線程,CPU負載比Timer低,文件系統出現故障幾率比之前低,但是不采用CPU負載監控策略的板子依然會出現文件系統故障。

實驗設定了不同CPU監控閾值,測試發現閾值設置到99,即僅在CPU負載達到99%以上時暫停文件讀寫,就可以有效避免出現文件系統故障。即只要CPU負載不達到100%,后臺寫平衡操作就能很快完成。

實驗結論

從實驗結果來看,文件系統故障最大誘因是系統內部做寫平衡處理同時應用程序也在進行高頻率文件讀寫。寫平衡操作長時間無法完成容易導致文件系統故障。采用文章中提到的讀寫策略:即監控CPU負載率,在CPU負載超過一定閾值(推薦70%),暫停文件操作,等待CPU負載率降低到閾值以下(系統后臺寫平衡操作結束),可有效規避FATFS內部均衡操作與文件讀寫的沖突,從而保證文件系統的穩定運行。

客戶程序如果高頻率對文件進行覆蓋讀寫操作,或是反復修改數據庫某項值,會導致系統頻繁進行寫平衡操作。優化程序,降低系統寫平衡操作的頻率,也有助于提供文件系統穩定性。

小結

對基于WinCE的嵌入式系統,應用程序如果遵循以下2條規則:(1)采用多線程進行不同文件的讀寫操作;(2)基于CPU負載率的文件讀寫控制策略。就能夠保證文件系統的穩定可靠運行。

附表實驗記錄

實驗編號 日期 板卡名稱 內核 Flash 板卡數 實驗程序 外部斷電 實驗時長 實驗結果
1 2018/12/13 EM9281 FSREGRAM 1G08 5套 test_filesys.exe V1.01 開80s,斷5s 396小時/16771次 2套應用程序出錯
2 2018/12/29 EM9281 FSREGHIVE 1G08 4套 test_filesys.exe V1.01 開80s,斷5s 8小時/338次 3套應系統報錯
EM9281 FSREGRAM 1G08 4套 test_filesys.exe V1.01 開80s,斷5s 265小時/11223次 1套應用程序出錯, 1套應系統報錯
EM9287 FSREGRAM 1G08 3套 test_filesys.exe V1.01 開80s,斷5s 8小時/338次 1套應用程序出錯
EM9287 FSREGHIVE 1G08 4套 test_filesys.exe V1.01 開80s,斷5s 95小時/4032次 1套應用程序出錯,1套<-NandMonitor_Setup
EM9287 FSREGHIVE 1G08 6套 test_filesys.exe V1.01 開80s,斷5s 88小時/3727次 1套應系統報錯, <-NandMonitor_Setup
3 2019/01/02 EM9287 FSREGHIVE 1G08 10套 test_filesys.exe V1.01 開80s,斷5s 151小時/6395次 2套應用程序出錯
4 2019/01/09 EM9281 FSREGRAM 1G08 8套 test_filesys.exe V1.00(Parameters=”90”) 開150s,斷5s 18小時/426次 1套應用程序出錯
5 2019/01/10 EM9281 FSREGRAM(ecc校驗8個及以上 1G08 8套 test_filesys.exe V1.00 Parameters=”S 90” 開150s,斷5s 99小時/2299次 1套應用程序出錯,1套死機
6 2019/01/15 EM9281 FSREGRAM(VDD電源) 1G08 8套 test_filesys.exe V1.03 開80s,斷5s 14.9小時/632次 未出現異常
7 2019/01/16 ES9281 FSREGRAM(VDD電源) 2G08 8套 test_filesys.exe V1.03 開80s,斷5s 23小時/976次 2套應用程序出錯
EM9281 FSREGHIVE(紋波過沖) 1G08 8套 test_filesys.exe V1.03 開80s,斷5s 16小時/677次 2019/01/25查看時有1套核報NK.EXE錯誤,且應用程序無法執行
8 2019/01/17 ES9281 FSREGHIVE(紋波過沖) 2G08 8套 test_filesys.exe 開80s,斷5s
開300s,斷5s
開540s,斷5s
103.3小時/4376次
48小時/283次
1套應用程序出錯
EM9281 FSREGHIVE(紋波過沖) 2G08 8套 test_filesys.exe V1.03 開80s,斷5s 31.3小時/1327次 2019/01/25查看時有2套核報NK.EXE錯誤,且應用程序可以運行
9 2019/01/18 EM9281 FSREGHIVE(把盤分成2個) 2G08 8套 test_filesys.exe 開80s,斷5s
開300s,斷5s
開90s,斷5s
72小時/3049次
48小時/283次
未出現異常
EM9281 FSREGHIVE 1G08 6套 test_filesys.exe(V1.03,超過70%就不寫) 開80s,斷5s 72/小時/3049次 未出現異常
EM9281 FSREGHIVE 1G08 6套 test_filesys.exe(V1.04 50 70%) 開300s,斷5s 48小時/283次 未出現異常
EM9281 FSREGHIVE 1G08 6套 test_filesys.exe (V1.04,設置350 100%) 開90s,斷5s 24小時/1016次 1套報NK.EXE錯誤,且應用程序可以運行
EM9281 FSREGHIVE 1G08 6套 test_filesys.exe(v1.01) 開540s,斷5s 15小時/99次 1套報NK.EXE錯誤,且應用程序無法運行
10 2019/01/25 EM9281 FSREGHIVE 1G08 10套 FST.exe (v2.00) 開120s,斷5s 21小時/607次 1套應用程序打不開
11 2019/01/26 EM9281 FSREGHIVE 1G08 10套 test_filesys.exe(V1.04 350 100%) 開120s,斷5s 46.1小時/1328次 1套報NK.EXE錯誤,且應用程序無法運行,1套應用程序嚴重錯誤,無法打開
12 2019/01/28 EM9281 FSREGHIVE 1G08 10套 test_filesys.exe(V2.01 350 100%) 開120s,斷5s 23.6小時/680次 1套應用程序打不開, 1套應用程序嚴重錯誤,無法打開
13 2019/01/29 EM9281 FSREGHIVE 1G08 10套 test_filesys.exe(V2.01b 350 100%) 開120s,斷5s 4.09小時/118次 未出現異常
14 2019/01/31 EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.02,70,50,100,150) 開120s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.02,80,50,100,150) 開120s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.02,100,50,100,150) 開120s,斷5s 23.6小時/681次 未出現異常
15 2019/02/01 EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.04,70,20,20,20) 開120s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.04,80,20,20,20) 開120s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.04,100,20,20,20) 開120s,斷5s 23.6小時/681次 未出現異常
16 2019/02/02 EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.04,-1)CPU負載最高100 開120s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.04,-1)CPU負載最高90 開120s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 5套 FST.exe(v2.04,-1)CPU負載最高80 開120s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 5套 FST.exe(v2.04,-1)CPU負載最高70 開120s,斷5s 23.6小時/681次 未出現異常
17 2019/02/11 EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.04,-1)CPU負載最高100 開180s,斷5s 23.6小時/681次 2套出現文件系統故障
EM9281 FSREGHIVE 1G08 10套 FST.exe(v2.04,-1)CPU負載最高90 開180s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 5套 FST.exe(v2.04,-1)CPU負載最高80 開180s,斷5s 23.6小時/681次 未出現異常
EM9281 FSREGHIVE 1G08 5套 FST.exe(v2.04,-1)CPU負載最高70 開180s,斷5s 23.6小時/681次 未出現異常

其他

測試中使用的測試程序及源碼,客戶可以聯系英創工程師獲得。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3598

    瀏覽量

    129558
收藏 人收藏

    評論

    相關推薦

    防止根文件系統破壞,OverlayRootfs 讓你的設備更安全

    OverlayRootfs介紹OverlayRootfs是指利用OverlayFS技術創建的根文件系統(rootfilesystem)。OverlayFS是一種聯合文件系統(UnionFS),允許將
    的頭像 發表于 01-08 16:33 ?83次閱讀
    防止根<b class='flag-5'>文件系統</b>破壞,OverlayRootfs 讓你的設備更安全

    華納云:VFS在提升文件系統性能方面的具體實踐

    VFS(Virtual File System)通過提供統一的接口和抽象層,使得操作系統能夠以高效的方式管理和訪問不同的文件系統。以下是一些VFS在提升文件系統性能方面的具體實踐示例: 統一的
    的頭像 發表于 11-27 15:59 ?197次閱讀

    stm32單片機基于rt-thread 的 littlefs 文件系統 的使用

    簡介littlefs是ARM官方推出的,專為嵌入式系統設計的文件系統,相比傳統的文件系統,littlefs具有以下優點:1、自帶擦寫均衡2、支持掉電保護3、占用的
    的頭像 發表于 11-06 08:04 ?861次閱讀
    stm32單片機基于rt-thread 的 littlefs <b class='flag-5'>文件系統</b> 的使用

    中科達榮獲2024年軟件和信息技術服務優秀企業

    及前百家企業”名單。中科達憑借非凡的技術實力與持續的創新能力,成功入選“2024年度軟件和信息技術服務競爭力百強企業”以及“2024年軟件和信息技術服務優秀企業”。
    的頭像 發表于 10-30 11:44 ?505次閱讀

    服務器數據恢復—EXT3文件系統下誤刪除數據的恢復案例

    服務器數據恢復環境: 郵件服務器中有一組由8塊盤組成的RAID5陣列, 上層是Linux操作系統+EXT3文件系統。 服務器故障: 由于誤刪除導致文件系統中的郵件數據丟失。
    的頭像 發表于 10-23 15:11 ?181次閱讀
    服務器數據恢復—EXT3<b class='flag-5'>文件系統</b>下誤刪除數據的恢復案例

    Linux根文件系統的掛載過程

    Linux根文件系統(rootfs)是Linux系統中所有其他文件系統和目錄的起點,它是內核啟動時掛載的第一個文件系統
    的頭像 發表于 10-05 16:50 ?443次閱讀

    如何構建Linux根文件系統

    構建Linux根文件系統是一個涉及多個步驟和概念的過程,它對于Linux系統的啟動和運行至關重要。
    的頭像 發表于 10-05 16:47 ?311次閱讀

    想提高開發效率,不要忘記文件系統

    ?同學們都知道,開發過程中文件系統的重要性,同樣的,4G-Cat.1模組的文件系統也非常重要,它通常與數據傳輸速度、存儲效率,以及數據安全性等有非常重要的關系,在應用開發中也非常重要。
    的頭像 發表于 09-21 08:18 ?256次閱讀
    想提高開發效率,不要忘記<b class='flag-5'>文件系統</b>

    服務器數據恢復—xfs文件系統服務器數據恢復案例

    某公司一臺服務器,連接了一臺存儲。該服務器安裝linux操作系統文件系統為xfs。 在運行過程中該服務器出現故障,管理員使用xfs_repair工具試圖對xfs文件系統進行修復但失
    的頭像 發表于 08-19 10:49 ?312次閱讀

    如何更改Linux文件系統終端顯示顏色

    自己制作的簡單 Linux 文件系統,你會發現終端顯示為黑白色,很不好看
    的頭像 發表于 08-12 17:29 ?605次閱讀
    如何更改Linux<b class='flag-5'>文件系統</b>終端顯示顏色

    如何修改buildroot和debian文件系統

    本文檔主要介紹在沒有編譯環境的情況下,如何修改buildroot和debian文件系統方法,如在buildroot文件系統中添加文件、修改目錄等文件操作,在debian
    的頭像 發表于 07-22 17:46 ?514次閱讀
    如何修改buildroot和debian<b class='flag-5'>文件系統</b>

    linux--sysfs文件系統

    sysfs文件系統 sysfs,全稱為System Filesystem,是一個由Linux內核實現的虛擬文件系統。它扮演著一個橋梁的角色,將內核中的設備和驅動程序信息文件的形式呈現
    的頭像 發表于 07-08 11:37 ?924次閱讀
    linux--sysfs<b class='flag-5'>文件系統</b>

    【嵌入式SD NAND】基于FATFS/Littlefs文件系統的日志框架實現

    `deinit`3.5全部代碼匯總4.測試5.總結1.概述那么在移植好了文件系統之后,我們又應該如何應用文件系統呢?很多人會說,這個簡單,就操作文件嘛!open、rea
    的頭像 發表于 03-14 18:12 ?1179次閱讀
    【嵌入式SD NAND】基于FATFS/Littlefs<b class='flag-5'>文件系統</b>的日志框架實現

    Linux系統如何擴展文件系統

    當數據盤沒有創建分區,只在設備上創建了文件系統。或者格式化了硬盤,就直接mount上系統使用。
    的頭像 發表于 02-21 09:53 ?852次閱讀

    鴻蒙輕內核源碼分析:虛擬文件系統 VFS

    VFS(Virtual File System)是文件系統的虛擬層,它不是一個實際的文件系統,而是一個異構文件系統之上的軟件粘合層,為用戶提供統一的類 Unix 文件操作接口。由于不同
    的頭像 發表于 02-18 14:50 ?859次閱讀
    主站蜘蛛池模板: 6080yy奇领电影在线看| xxnx动漫| 小小水蜜桃视频高清在线观看免费 | 老阿姨儿子一二三区| 浪小辉军警服务员VIDEOS| 男人和女人一起愁愁愁很痛| 强奷漂亮女老板在线播放| 色柚视频网站ww色| 新版孕妇bbwbbwbbw| 一手揉着乳头一手模仿抽插视频| 中国xxxxxxxxx孕交| xxxxxx日本处大片免费看| 国产高清视频免费最新在线| 好嗨哟在线看片免费| 噜妇插内射精品| 日韩欧美中文字幕在线二视频| 性与肉体电影免费观看| 在线观看中文| 成年人视频免费在线播放| 国产亚洲视频在线| 么公在浴室了我的奶| 三级黄色小视频| 幺妹视频福利视频| free性中国hd护士高清| 国产精品爽爽久久久久久无码| 久久成人精品免费播放| 欧美夜夜噜2017最新| 亚洲国产货青视觉盛宴| 91精品国产色综合久久| 国产成人精品视频| 久久热这里只有 精品| 日韩成人黄色| 夜色福利院在线观看免费| 把腿张开再深点好爽宝贝| 国产亚洲精品成人AV久久| 男女啪啪久久精品亚洲A| 午夜在线播放免费人成无| 2021精品国产综合久久| 国产精品成人啪精品视频免费观看| 久久人妻AV一区二区软件| 神马影院在线eecss伦理片|