在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

Linux固件燒寫中的陷阱:文件系統(tǒng)異步寫入引發(fā)的問題

ZLG致遠(yuǎn)電子 ? 2025-03-07 11:34 ? 次閱讀

在工業(yè)生產(chǎn)中,固件燒寫是確保產(chǎn)品正常運(yùn)行的關(guān)鍵環(huán)節(jié)。本文通過一個(gè)實(shí)際案例,揭示了Linux系統(tǒng)下因文件寫入異步性導(dǎo)致的固件燒寫不完全問題。
14681a2c-fb05-11ef-9434-92fbcf53809c.jpg ?客戶案例

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

由于Linux系統(tǒng)存在頁高速緩存,對(duì)寫入的內(nèi)容起到了緩存作用,用戶的寫操作實(shí)際上會(huì)被延遲。當(dāng)頁高速緩存中的數(shù)據(jù)比后臺(tái)存儲(chǔ)的數(shù)據(jù)新的時(shí)候,這些數(shù)據(jù)就被稱作臟數(shù)據(jù)。發(fā)生以下三種情況時(shí),臟頁才會(huì)被寫回磁盤:

  1. 當(dāng)空閑內(nèi)存低于一個(gè)特定的閾值時(shí),內(nèi)核必須將臟頁寫回磁盤以釋放內(nèi)存。
  2. 當(dāng)臟頁在內(nèi)存中駐留時(shí)間超過一個(gè)特定的閾值時(shí),內(nèi)核必須將超時(shí)的臟頁寫回磁盤,以確保臟頁不會(huì)無限期地駐留在內(nèi)存中。
  3. 當(dāng)用戶進(jìn)程調(diào)用 sync()和 fsync()系統(tǒng)調(diào)用時(shí),內(nèi)核會(huì)按照要求執(zhí)行回寫操作。


14681a2c-fb05-11ef-9434-92fbcf53809c.jpg ?應(yīng)對(duì)方案

如果更新腳本在解壓命令后沒有sync指令,或者程序更新代碼在執(zhí)行解壓或者寫操作后沒有調(diào)用fsync()函數(shù)執(zhí)行寫操作,Linux系統(tǒng)就會(huì)按照默認(rèn)機(jī)制來實(shí)現(xiàn)寫操作;如果沒有達(dá)到如上前2個(gè)條件,發(fā)生了斷電操作,則會(huì)導(dǎo)致寫入數(shù)據(jù)不完整。

在程序更新腳本里,解壓后必須執(zhí)行sync指令完成寫入同步,或者應(yīng)用程序代碼在寫操作后調(diào)用fsync()函數(shù)完成寫同步操作,確保數(shù)據(jù)寫入存儲(chǔ)器。

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

    關(guān)注

    87

    文章

    11459

    瀏覽量

    212790
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    293

    瀏覽量

    20288
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    372

    瀏覽量

    23973
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    DshanMCU-R128s2 固件

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

    Linux文件系統(tǒng)課程

    本章學(xué)習(xí)目標(biāo)理解什么是文件系統(tǒng)了解文件系統(tǒng)工作原理理解Fedora Core Linux文件系統(tǒng)的結(jié)構(gòu)掌握Fedora Core Linux
    發(fā)表于 04-10 17:07 ?0次下載

    Linux文件系統(tǒng)異步I/O擴(kuò)展

    本文中要介紹一個(gè)所謂的"Linux 文件系統(tǒng)的守護(hù)神",這是指一個(gè)能實(shí)時(shí)地觀察 Linux 文件系統(tǒng)的變化情況的程序模塊
    發(fā)表于 05-06 10:12 ?875次閱讀

    Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)

    Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)
    發(fā)表于 10-27 14:13 ?0次下載
    《<b class='flag-5'>Linux</b>設(shè)備驅(qū)動(dòng)開發(fā)詳解》第5章、<b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>與設(shè)備<b class='flag-5'>文件系統(tǒng)</b>

    可以了解的Linux 文件系統(tǒng)結(jié)構(gòu)

    Linux文件是什么?它的文件系統(tǒng)又是什么?那些配置文件又在哪里?我下載好的程序保存在哪里了?在 L
    發(fā)表于 04-27 14:06 ?810次閱讀
    可以了解的<b class='flag-5'>Linux</b> <b class='flag-5'>文件系統(tǒng)</b>結(jié)構(gòu)

    linux文件系統(tǒng)的虛擬文件系統(tǒng)設(shè)計(jì)詳解

    Linux 中允許眾多不同的文件系統(tǒng)共存,如 ext2, ext3, vfat 等。通過使用同一套文件 I/O 系統(tǒng) 調(diào)用即可對(duì) Linux
    發(fā)表于 04-02 14:37 ?2022次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>文件系統(tǒng)</b><b class='flag-5'>中</b>的虛擬<b class='flag-5'>文件系統(tǒng)</b>設(shè)計(jì)詳解

    Linux系統(tǒng)日志文件的JFS文件系統(tǒng)

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

    Linux文件系統(tǒng)解析

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

    嵌入式Linux系統(tǒng)移植-(Linux文件系統(tǒng)

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

    Core 3328 JD4固件Linux文件系統(tǒng)鏡像

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

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

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

    淺談Linux的proc文件系統(tǒng)

    大家好,我是ST,今天主要和大家聊一聊,Linux的proc文件系統(tǒng)
    發(fā)表于 10-10 14:59 ?2026次閱讀

    適用于Linux的最佳通用文件系統(tǒng) Linux文件系統(tǒng)的安裝

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

    Linux文件系統(tǒng)特點(diǎn)

    Linux文件系統(tǒng)特點(diǎn) 文件系統(tǒng)要有嚴(yán)格的組織形式,使得文件能夠以塊為單位進(jìn)行存儲(chǔ)。 文件系統(tǒng)
    的頭像 發(fā)表于 11-09 14:48 ?1525次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>文件系統(tǒng)</b>特點(diǎn)

    Linux文件系統(tǒng)的掛載過程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)
    的頭像 發(fā)表于 10-05 16:50 ?845次閱讀
    主站蜘蛛池模板: 5月丁香婷婷| 第四色视频 | 欧美一区二区三区综合色视频 | 欧美3d动漫网站 | www.亚洲免费 | 网站毛片| 亚洲88av| 国语自产免费精品视频一区二区 | 中文字幕一区二区三区乱码aⅴ | 天天操夜夜干 | 午夜欧美性视频在线播放 | 国产亚洲卡二卡3卡4卡乱码 | 四虎影院国产 | 清纯唯美亚洲综合一区 | 好紧好爽太大了h视频 | 日本黄色免费在线观看 | 亚洲成人综合在线 | 久久e热| 国产免费一级高清淫曰本片 | 全日本爽视频在线 | 午夜日本一区二区三区 | 黄色在线网| 欧美人成在线观看 | 美国一级做a一级爱视频 | 国产福利萌白酱喷水视频铁牛 | 精品一区 二区三区免费毛片 | 小毛片在线观看 | 国色天香精品亚洲精品 | 轻点灬大ji巴太大太深了 | 啪啪大片| 久操视频在线 | 欧美日韩一区二区视频图片 | 亚洲一区二区在线 | 在线观看免费视频一区 | 国内精品视频免费观看 | 女bbbbxxxx毛片视频 | 色六月婷婷 | 中文字幕三级 | 日日爽夜夜 | 色婷婷色综合缴情在线 | 99亚洲精品卡2卡三卡4卡2卡 |