芯片貼板后跑不起來?Flash里面的數據在使用過程中莫名改變或不翼而飛?重新下載程序后又可以運行?這究竟是為什么呢?
1
用戶代碼對Flash的誤操作不當引起程序丟失或被錯誤改寫
例如,在有對Flash寫入或擦除操作的代碼中,如果用戶誤調用了寫入或擦除函數或者由于程序跑飛而恰好執行了Flash擦除或寫入函數,這自然會導致數據丟失或改變。針對以上情況,可以在程序中設置多個允許操作的變量,當執行寫入或擦除操作時,對這些變量進行判斷,只有條件全部滿足時,才執行相應的操作。
在一些不需要進行擦除或寫入操作的系統中,對存儲區進行寫保護或擦除保護設置,能有效的防止數據被意外修改。做到了寫入或擦除的可控性,基本可以避免此種情況發生。
圖1 Flash保護
2
電源失效
圖2 電源噪聲嚴重
電源電壓的異常可能會導致系統單片機系統工作異常的現象,如輸出電壓小于單片機系統工作所需的最小電壓,輸出電壓不干凈,噪音嚴重等,這些很容易引起單片機內部電路的邏輯紊亂,Flash的讀寫信號處于不穩定狀態。可能產生滿足Flash的寫操作,從而給系統帶來嚴重的損害。
針對以上情況,可以在系統中加入電源監控芯片或使能MCU本身的電源監控電路,在電源異常的情況下禁止對Flash區域操作。
3
系統時鐘不穩定
無論對于內部Flash還是外部Flash,系統時鐘的不穩定,都將導致MCU得不到可靠的工作時序信號,從而在讀寫Flash時產生不可預料的后果。
4
環境干擾
環境干擾的可能原因很多,如生產過程中的高溫焊接、靜電、使用環境的溫濕度,強磁場等,都可能影響到Flash或整個系統的穩定。環境干擾的因素很多,在此不展開討論。
-
FlaSh
+關注
關注
10文章
1642瀏覽量
148685 -
數據
+關注
關注
8文章
7145瀏覽量
89590
原文標題:為何你的Flash數據會不翼而飛?
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
ROM數據丟失的常見原因
socket編程中的錯誤處理技巧
ensp啟動失敗,錯誤代碼40怎么回事
plc什么情況下會導致程序丟失
STM32F4上電不啟動,固件損壞,程序丟失的原因?
STM32F4在APP運行時導致IAP程序被修改怎么解決?
stm32f469讀取內部FLASH程序就會死掉的原因?
KT404C語音芯片外掛flash用一段時間之后數據被改寫的問題查找
![KT404C語音芯片外掛<b class='flag-5'>flash</b>用一段時間之后數據<b class='flag-5'>被</b><b class='flag-5'>改寫</b>的問題查找](https://file1.elecfans.com/web2/M00/C5/EB/wKgZomYDso2APAP3AAC4KJltKm8039.png)
評論