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

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

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

Flash的誤操作不當(dāng)致使程序丟失或被錯(cuò)誤改寫

AGk5_ZLG_zhiyua ? 來源:YXQ ? 2019-08-06 16:54 ? 次閱讀

芯片貼板后跑不起來?Flash里面的數(shù)據(jù)在使用過程中莫名改變或不翼而飛?重新下載程序后又可以運(yùn)行?這究竟是為什么呢?

1

用戶代碼對Flash的誤操作不當(dāng)引起程序丟失或被錯(cuò)誤改寫

例如,在有對Flash寫入或擦除操作的代碼中,如果用戶誤調(diào)用了寫入或擦除函數(shù)或者由于程序跑飛而恰好執(zhí)行了Flash擦除或?qū)懭牒瘮?shù),這自然會(huì)導(dǎo)致數(shù)據(jù)丟失或改變。針對以上情況,可以在程序中設(shè)置多個(gè)允許操作的變量,當(dāng)執(zhí)行寫入或擦除操作時(shí),對這些變量進(jìn)行判斷,只有條件全部滿足時(shí),才執(zhí)行相應(yīng)的操作。

在一些不需要進(jìn)行擦除或?qū)懭氩僮鞯南到y(tǒng)中,對存儲(chǔ)區(qū)進(jìn)行寫保護(hù)或擦除保護(hù)設(shè)置,能有效的防止數(shù)據(jù)被意外修改。做到了寫入或擦除的可控性,基本可以避免此種情況發(fā)生。

圖1 Flash保護(hù)

2

電源失效

圖2 電源噪聲嚴(yán)重

電源電壓的異??赡軙?huì)導(dǎo)致系統(tǒng)單片機(jī)系統(tǒng)工作異常的現(xiàn)象,如輸出電壓小于單片機(jī)系統(tǒng)工作所需的最小電壓,輸出電壓不干凈,噪音嚴(yán)重等,這些很容易引起單片機(jī)內(nèi)部電路的邏輯紊亂,F(xiàn)lash的讀寫信號(hào)處于不穩(wěn)定狀態(tài)??赡墚a(chǎn)生滿足Flash的寫操作,從而給系統(tǒng)帶來嚴(yán)重的損害。

針對以上情況,可以在系統(tǒng)中加入電源監(jiān)控芯片或使能MCU本身的電源監(jiān)控電路,在電源異常的情況下禁止對Flash區(qū)域操作。

3

系統(tǒng)時(shí)鐘不穩(wěn)定

無論對于內(nèi)部Flash還是外部Flash,系統(tǒng)時(shí)鐘的不穩(wěn)定,都將導(dǎo)致MCU得不到可靠的工作時(shí)序信號(hào),從而在讀寫Flash時(shí)產(chǎn)生不可預(yù)料的后果。

4

環(huán)境干擾

環(huán)境干擾的可能原因很多,如生產(chǎn)過程中的高溫焊接、靜電、使用環(huán)境的溫濕度,強(qiáng)磁場等,都可能影響到Flash或整個(gè)系統(tǒng)的穩(wěn)定。環(huán)境干擾的因素很多,在此不展開討論。

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

    關(guān)注

    10

    文章

    1640

    瀏覽量

    148320
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7104

    瀏覽量

    89296

原文標(biāo)題:為何你的Flash數(shù)據(jù)會(huì)不翼而飛?

文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ROM數(shù)據(jù)丟失的常見原因

    的常見原因 1. 硬件故障 1.1 物理損壞 ROM芯片可能因?yàn)槲锢頉_擊、高溫、濕度、腐蝕等因素而損壞。這些因素可能導(dǎo)致芯片內(nèi)部電路斷裂短路,從而造成數(shù)據(jù)丟失。 1.2 老化 隨著時(shí)間的推移,ROM芯片會(huì)逐漸老化,其性能會(huì)逐漸下降。老化的ROM芯片可能會(huì)出現(xiàn)數(shù)據(jù)讀寫
    的頭像 發(fā)表于 11-04 10:29 ?978次閱讀

    ensp啟動(dòng)失敗,錯(cuò)誤代碼40怎么回事

    網(wǎng)絡(luò)適配器驅(qū)動(dòng)程序問題 : 網(wǎng)絡(luò)適配器驅(qū)動(dòng)程序未正確安裝未啟用。 權(quán)限問題 : ENSP服務(wù)未能以管理員權(quán)限運(yùn)行,導(dǎo)致無法訪問必要的系統(tǒng)資源。 系統(tǒng)文件損壞 : 系統(tǒng)文件損壞
    的頭像 發(fā)表于 08-30 14:29 ?9383次閱讀

    plc什么情況下會(huì)導(dǎo)致程序丟失

    程序可能會(huì)丟失。 電源故障 電源故障是導(dǎo)致PLC程序丟失的常見原因之一。當(dāng)PLC的電源突然中斷電壓波動(dòng)過大時(shí),可能會(huì)導(dǎo)致
    的頭像 發(fā)表于 08-19 09:14 ?1573次閱讀

    plc程序丟失怎么恢復(fù)回來

    因?yàn)楦鞣N原因丟失,如硬件故障、軟件錯(cuò)誤、人為操作失誤等。 1. 確定程序丟失的原因 在開始恢復(fù)程序
    的頭像 發(fā)表于 07-25 10:08 ?2759次閱讀

    怎么判斷PLC程序丟失

    PLC程序丟失并及時(shí)采取措施是非常重要的。 程序丟失的原因 在討論如何判斷PLC程序丟失之前,我
    的頭像 發(fā)表于 07-25 10:01 ?1437次閱讀

    STM32F4上電不啟動(dòng),固件損壞,程序丟失的原因?

    STM32F407ZET6 PDR_ON 143引腳0R電阻接地。 上下電程序出現(xiàn)無法運(yùn)行的現(xiàn)象,出現(xiàn)異常后讀回MCU FLASH數(shù)據(jù)比對,FLASH一段空間范圍內(nèi)的數(shù)據(jù)
    發(fā)表于 07-23 06:26

    Ti60F100 內(nèi)外flash操作方案

    有客戶認(rèn)為Ti60F100內(nèi)部flash容量比較小,只有16Mb,需要外掛flash.這里我們提供了內(nèi)部flash和外部flash分別操作
    的頭像 發(fā)表于 05-20 16:42 ?1691次閱讀
    Ti60F100 內(nèi)外<b class='flag-5'>flash</b><b class='flag-5'>操作</b>方案

    STM32F4在APP運(yùn)行時(shí)導(dǎo)致IAP程序修改怎么解決?

    IAP程序修改無法運(yùn)行,導(dǎo)致過程IAP卡死。 已驗(yàn)證該錯(cuò)誤發(fā)生在APP程序(地址0x08020000)中,僅IAP程序的首地址0x0800
    發(fā)表于 05-17 09:32

    stm32f469讀取內(nèi)部FLASH程序就會(huì)死掉的原因?

    如題,我將數(shù)據(jù)寫入指定的內(nèi)部FLASH的某個(gè)地址然后進(jìn)行讀取,但是一讀整個(gè)程序就死了。我開始以為是我進(jìn)行寫操作不當(dāng)造成的,后來我測試不擦除內(nèi)部FLA
    發(fā)表于 04-26 07:51

    易靈思FPGA flash操作原理

    易靈思FPGA flash操作原理分享
    的頭像 發(fā)表于 04-09 15:03 ?1037次閱讀

    KT404C語音芯片外掛flash用一段時(shí)間之后數(shù)據(jù)改寫的問題查找

    了亂碼 3、將flash的bin文件讀出來,發(fā)現(xiàn)flash莫名其妙的改寫了 4、重新將音頻文件拷貝至flash里面,之后就完全正常了
    的頭像 發(fā)表于 03-27 13:46 ?448次閱讀
    KT404C語音芯片外掛<b class='flag-5'>flash</b>用一段時(shí)間之后數(shù)據(jù)<b class='flag-5'>被</b><b class='flag-5'>改寫</b>的問題查找

    STM32上下電內(nèi)部flash改寫的原因?

    基于STM32F405系列一個(gè)64pin MCU,在使用過程中,整機(jī)掉電更換另一個(gè)部件,再上電后發(fā)現(xiàn)這個(gè)產(chǎn)品不工作了。發(fā)回廠家發(fā)現(xiàn)STM32內(nèi)部flash數(shù)據(jù)改寫了,前幾行改成了0
    發(fā)表于 03-25 08:24

    應(yīng)用程序中的服務(wù)器錯(cuò)誤怎么解決?

    在使用應(yīng)用程序時(shí),可能會(huì)遇到服務(wù)器錯(cuò)誤的問題。這種錯(cuò)誤通常會(huì)導(dǎo)致應(yīng)用程序無法正常運(yùn)行 ,給用戶帶來不便。下面將介紹應(yīng)用程序中的服務(wù)器
    的頭像 發(fā)表于 03-12 15:13 ?6378次閱讀

    Tasking誤操作導(dǎo)致MCU鎖怎么解決?

    硬件環(huán)境:infineon TriBoardDebugger:Start Kit(TriBoard自帶調(diào)試接口0) 在Tasking中Boot Mode Header中由于錯(cuò)誤操作選擇了
    發(fā)表于 02-20 07:03

    導(dǎo)致PLC信號(hào)干擾的錯(cuò)誤操作

    以下是一些可能導(dǎo)致PLC(可編程邏輯控制器)信號(hào)干擾的錯(cuò)誤操作
    的頭像 發(fā)表于 01-22 10:05 ?605次閱讀