女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

Linux固件燒寫中的陷阱:文件系統異步寫入引發的問題

ZLG致遠電子 ? 2025-03-07 11:34 ? 次閱讀

在工業生產中,固件燒寫是確保產品正常運行的關鍵環節。本文通過一個實際案例,揭示了Linux系統下因文件寫入異步性導致的固件燒寫不完全問題。
14681a2c-fb05-11ef-9434-92fbcf53809c.jpg ?客戶案例

客戶產線上批量生產時,用SD卡進行固件燒寫,燒寫完成后蜂鳴器提示,產線工人聽到蜂鳴器鳴叫后就直接斷電重啟,進入測試環節,結果在測試中發現有部分產品啟動就出現異常。客戶用解壓方式燒寫系統固件,解壓命令執行完后,再運行一個二進制可執行程序,然后鳴叫蜂鳴器。乍一看邏輯非常正確,沒有任何問題。可問題卻較高概率出現,問題出在哪里呢?后來經過反復排查,發現客戶解壓腳本里的可執行程序里面還有二次解壓操作,而且用system()調用了Linux的Shell命令。System()調用Shell命令會生成一個新的子進程,這樣蜂鳴器鳴叫和二次解壓分別在不同進程中,兩者沒有同步,解壓完成和蜂鳴器鳴叫沒有必然的先后順序。按照蜂鳴器鳴叫就斷電重啟,這樣就不可避免的出現了解壓尚未完成就被斷電的情況,從而引起文件燒寫不完全,系統啟動異常。下面圍繞該問題,對Linux文件系統寫文件操作進行一些說明。
14681a2c-fb05-11ef-9434-92fbcf53809c.jpg ?原理說明

由于Linux系統存在頁高速緩存,對寫入的內容起到了緩存作用,用戶的寫操作實際上會被延遲。當頁高速緩存中的數據比后臺存儲的數據新的時候,這些數據就被稱作臟數據。發生以下三種情況時,臟頁才會被寫回磁盤:

  1. 當空閑內存低于一個特定的閾值時,內核必須將臟頁寫回磁盤以釋放內存。
  2. 當臟頁在內存中駐留時間超過一個特定的閾值時,內核必須將超時的臟頁寫回磁盤,以確保臟頁不會無限期地駐留在內存中。
  3. 當用戶進程調用 sync()和 fsync()系統調用時,內核會按照要求執行回寫操作。


14681a2c-fb05-11ef-9434-92fbcf53809c.jpg ?應對方案

如果更新腳本在解壓命令后沒有sync指令,或者程序更新代碼在執行解壓或者寫操作后沒有調用fsync()函數執行寫操作,Linux系統就會按照默認機制來實現寫操作;如果沒有達到如上前2個條件,發生了斷電操作,則會導致寫入數據不完整。

在程序更新腳本里,解壓后必須執行sync指令完成寫入同步,或者應用程序代碼在寫操作后調用fsync()函數完成寫同步操作,確保數據寫入存儲器。

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

    關注

    87

    文章

    11457

    瀏覽量

    212761
  • 文件系統
    +關注

    關注

    0

    文章

    293

    瀏覽量

    20282
  • Shell
    +關注

    關注

    1

    文章

    372

    瀏覽量

    23961
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    DshanMCU-R128s2 固件

    編譯系統源碼后,打包后生成的系統文件稱之為固件固件一般為.img格式。把固件下載到開發板或者產
    的頭像 發表于 12-22 15:08 ?1498次閱讀
    DshanMCU-R128s2 <b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>固件</b>

    Linux文件系統課程

    本章學習目標理解什么是文件系統了解文件系統工作原理理解Fedora Core Linux文件系統的結構掌握Fedora Core Linux
    發表于 04-10 17:07 ?0次下載

    Linux文件系統異步I/O擴展

    本文中要介紹一個所謂的"Linux 文件系統的守護神",這是指一個能實時地觀察 Linux 文件系統的變化情況的程序模塊
    發表于 05-06 10:12 ?875次閱讀

    Linux設備驅動開發詳解》第5章、Linux文件系統與設備文件系統

    Linux設備驅動開發詳解》第5章、Linux文件系統與設備文件系統
    發表于 10-27 14:13 ?0次下載
    《<b class='flag-5'>Linux</b>設備驅動開發詳解》第5章、<b class='flag-5'>Linux</b><b class='flag-5'>文件系統</b>與設備<b class='flag-5'>文件系統</b>

    可以了解的Linux 文件系統結構

    Linux文件是什么?它的文件系統又是什么?那些配置文件又在哪里?我下載好的程序保存在哪里了?在 L
    發表于 04-27 14:06 ?808次閱讀
    可以了解的<b class='flag-5'>Linux</b> <b class='flag-5'>文件系統</b>結構

    linux文件系統的虛擬文件系統設計詳解

    Linux 中允許眾多不同的文件系統共存,如 ext2, ext3, vfat 等。通過使用同一套文件 I/O 系統 調用即可對 Linux
    發表于 04-02 14:37 ?2017次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>文件系統</b><b class='flag-5'>中</b>的虛擬<b class='flag-5'>文件系統</b>設計詳解

    Linux系統日志文件的JFS文件系統

    嵌入式linux中文站向大家介紹一下JFS文件系統Linux系統日志文件的JFS
    發表于 05-05 14:10 ?5271次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統</b>日志<b class='flag-5'>文件</b><b class='flag-5'>中</b>的JFS<b class='flag-5'>文件系統</b>

    Linux文件系統解析

    Linux ,最直觀、最可見的部分就是 文件系統(file system)。下面我們就來一起探討一下關于 Linux 中國的文件系統
    的頭像 發表于 09-16 11:29 ?2697次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>文件系統</b>解析

    嵌入式Linux系統移植-(Linux文件系統

    嵌入式Linux系統移植-(Linux文件系統)嵌入式文件系統概述·文件是有組織、有次序地存儲在
    發表于 11-02 12:51 ?16次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系統</b>移植-(<b class='flag-5'>Linux</b><b class='flag-5'>文件系統</b>)

    Core 3328 JD4固件Linux文件系統鏡像

    電子發燒友網站提供《Core 3328 JD4固件Linux文件系統鏡像.txt》資料免費下載
    發表于 09-13 10:30 ?4次下載
    Core 3328 JD4<b class='flag-5'>固件</b><b class='flag-5'>Linux</b>根<b class='flag-5'>文件系統</b>鏡像

    Core 1808 JD4固件Linux文件系統(Ubuntu18.04)

    電子發燒友網站提供《Core 1808 JD4固件Linux文件系統(Ubuntu18.04).txt》資料免費下載
    發表于 09-20 17:05 ?0次下載
    Core 1808 JD4<b class='flag-5'>固件</b><b class='flag-5'>Linux</b>根<b class='flag-5'>文件系統</b>(Ubuntu18.04)

    淺談Linux的proc文件系統

    大家好,我是ST,今天主要和大家聊一聊,Linux的proc文件系統
    發表于 10-10 14:59 ?2024次閱讀

    適用于Linux的最佳通用文件系統 Linux文件系統的安裝

    為您的計算機選擇正確的文件系統可能是一個困難的過程。您可能會想知道:為什么文件系統很重要?有沒有適用于安裝 Linux 的特定文件系統? 事實證明,有兩種
    發表于 08-03 10:22 ?471次閱讀
    適用于<b class='flag-5'>Linux</b>的最佳通用<b class='flag-5'>文件系統</b> <b class='flag-5'>Linux</b><b class='flag-5'>文件系統</b>的安裝

    Linux文件系統特點

    Linux文件系統特點 文件系統要有嚴格的組織形式,使得文件能夠以塊為單位進行存儲。 文件系統
    的頭像 發表于 11-09 14:48 ?1518次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>文件系統</b>特點

    Linux文件系統的掛載過程

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