新聞中心

        EEPW首頁 > 網絡與存儲 > 設計應用 > 閃存出錯:軟件錯誤還是電源電壓故障(上)?

        閃存出錯:軟件錯誤還是電源電壓故障(上)?

        —— 兩種故障的分析
        作者:ShyamChandra 時間:2013-02-26 來源:電子產品世界 收藏

          答案:兩個都是!閃存通常用于存儲系統的固件。有時候,在某些系統的閃存中存儲的固件意外出錯,導致系統無法在上電后正常啟動。閃存出錯通常與軟件錯誤有關。然而,工程師們也普遍認同電源循環測試或者裕度測試增加了閃存出錯的可能性。當板上使用復雜的ASIC或SoC越多,閃存出錯的問題就會更嚴重。本文探討了除了軟件錯誤外,其他引起閃存出錯的情況和原因并提出解決方法,最大限度地減少損壞。

        本文引用地址:http://www.104case.com/article/142408.htm

          為什么閃存內容會出錯?

          圖1是一個典型的電路板的電路。當電源接通時,復位發生器首先激活的復位信號。然后等待,直到、閃存和存儲器都達到其額定的工作電壓,再等待一個額外的時間周期(約150ms),然后關閉CPU復位信號。當復位信號關閉時,CPU開始執行閃存中的初始化程序,將存儲在閃存中的固件內容載入存儲器,并執行存儲器中的程序。  

         

          固件載入閃存的步驟如下:

          ● 固件通過通信接口載入DDR存儲器;
          ● 跳轉到閃存更新程序,使用新的固件對閃存重新編程;
          ● 處理器重新上電,新的固件生效。

          如果代碼執行意外跳轉到閃存更新程序,閃存中的內容可能會被損壞。當電路板重新上電,錯誤版本的代碼被加載到DDR,而電路板并不能如預期般工作。

          代碼執行意外跳轉到這個閃存更新程序,可能是由于軟件錯誤或者電源電壓故障(例如在電源關斷時)。使用正常的軟件調試方法,可以檢測到軟件錯誤。然而,故障電源電壓是很難檢測的,因為電源電壓故障隨時都可能發生。

          為什么電源電壓故障會導致程序跳轉到閃存更新程序?

          所有IC都有最低和最高工作電壓規范。如果供電電壓超過了最高電壓,該器件就會被損壞,如果供電電壓低于最低的電壓值,則該器件不能正常工作。例如,在圖1中CPU內核的額定電壓是1.2V±5%。如果電壓下降到低于這個值,CPU內部的指令執行流水線就不能可靠地傳輸指令和數據,并且(根據CPU的進程和工作溫度)指令可能無法正確執行。例如,“Move”指令可能被解釋為“Pop”的指令,然后代碼執行隨機跳轉到存儲器中的某個位置(由堆棧中的內容的決定)。根據該存儲器位置的內容和執行中的錯誤,處理器可能掛起或跳轉到閃存更新程序,破壞閃存并覆蓋閃存中的內容。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        關鍵詞: 嵌入式 CPU DDR

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 莱西市| 长兴县| 桂林市| 南通市| 南溪县| 香港 | 乐安县| 通海县| 北票市| 龙山县| 民勤县| 孟连| 保亭| 迁西县| 达拉特旗| 青岛市| 苍溪县| 榆中县| 温泉县| 广西| 五家渠市| 色达县| 济源市| 高安市| 库伦旗| 新和县| 天长市| 盐城市| 印江| 湘潭市| 建阳市| 南投市| 项城市| 康保县| 华安县| 师宗县| 贺兰县| 嘉兴市| 建宁县| 焉耆| 姚安县|