主頁 › 技術支持案例展示 › 如何用軟件檢測SRAM運行狀態

技術支持

如何用軟件檢測SRAM運行狀態

2018-11-27 11:01:27

      目前來說對於存儲單元SRAM的研究主要基於硬件電路來完成,並且在也都是在生產過程中產生的這些辦法,但並不能夠當當從生產過程中去杜絕SRAM的硬件故障,如果SRAM硬件出錯導致程序出錯特別是在使用過程中,是較難被發現的,因此通過軟件對SRAM 進行檢測是為了防止在運用過程中因存儲單元損壞而導致係統出錯。

1 SRAM運行狀態分析
SRAM是一種易失性的隨機靜態存儲器,存儲非CONSTANT變量(如RW),具有掉電丟失數據的特點,從係統上電後,從Corter-M3啟動步驟可得知,需先執行複位的五個步驟:
①NVIC複位,控製內核;
  ②NVIC從複位中釋放內核;
  ③內核配置堆棧;
  ④內核設置PC和LR;
  ⑤運行複位程序。
  可以看出,不能在調入C環境之後檢測SRAM,必須在Cortex—M3複位之前和啟動之後進行檢測。
  在執行係統複位的最後一個步驟之前,係統都沒有對SRAM執行任何相關的數據傳送動作。第⑤步運行複位程序,在ST公司Cortex-M3處理器內核的STM32係列微控製器的啟動代碼中有一段複位子程序:
複位子程序

  在這個子程序裏導入了__main,__main是C庫文件的入口地址。它執行下麵3個步驟:
  ①複製非root(RW、RO)從Flash到SRAM;
  ②分配ZI區,並且初始化為0;
  ③跳轉到堆棧初始化子程序接口__rt_entry。
  由_ _main的第一步可以得出,在跳入_ _main之後,係統對SRAM進行了相關數據轉移的操作。因此,檢測SRAM必須在此步驟之前,否則將會覆蓋SRAM從Flash中轉移過來的數據。
  2 SRAM檢測方案設計
  在複位子程序跳入_ _main之前,設計另一個程序入口SRAM_Check,使PC指針指向該SRAM進行硬件單元檢測程序(SRAM_Check)的入口。在SRAM_check裏,首先將PC指針指向SRAM的首地址並寫入0xFF,讀回該地址的值到通用寄存器Rn1,並對Rn1裏的值進行加1操作,然後將Rn1和256做比較,得出SRAM硬件是否損壞。這種操作可以避免因SRAM硬件一直為1或0而出現算法本身錯誤。由於Cortex—M3複位後默認的時鍾為HSI,是一個內部RC振蕩器,因此精度不高。如果需要更準和快速的時鍾,就必須在跳入SRAM_Check之前對相關的寄存器進行操作。
  3 SRAM檢測軟件設計
  圖1為本文設計的SRAM檢測軟件程序流程。
SRAM檢測軟件程序流程

圖1 SRAM檢測軟件程序流程
  4 在線調試結果及分析
  上電複位後,在線調試PC指針指向Reset_Handler入口地址時的SRAM初始數值如圖2所示。可以看到,當係統複位時每個SRAM單元的數值均為0x00。
  在線調試下,圖3為對所有的SRAM地址進行檢測後SRAM的數值,完全符合程序設計要求。
SRAM的數值
  SRAM測試通過後,釋放所有的SRAM,還原為0x00,如圖4所示。
釋放所有的SRAM
  5 結論
  本文提出了一種基於軟件的SRAM單元故障自檢測方法,通過在線調試得到的結果,可知該方法是完全可行的。在實際運用中,該方法能夠確保係統正常地運行在可靠的環境之上。如果SRAM單元有生產或運輸等損壞,也可以通過該方法方便地檢測出來,大大減少了係統排除故障的時間。
 
本文關鍵詞:SRAM
相關文章:電動自行車MCU應用方案—靈動微電子MM32SPIN07

深圳市快妖精app微電子有限公司是一家專業的靜態隨機記憶體產品及方案提供商,十年來專業致力代理分銷存儲芯片IC, SRAM、MRAM、pSRAM、 FLASH芯片、SDRAM(DDR1/DDR2/DDR3)等,為客人提供性價比更高的產品及方案。
快妖精app微電子中國區指定的授權代理:VTI、NETSOL、JSC濟州半導體(EMLSI)、Everspin 、IPSILOG、LYONTEK、ISSI、CYPRESS、ISOCOME、PARAGON、SINOCHIP、UNIIC; 著名半導體品牌的專業分銷商  如:RAMTROM、ETRON、FUJITSU、LYONTEK、WILLSEMI。
 
​更多資訊關注SRAMSUN.   www.gdnf0757.com         0755-66658299
展開
AG8亚游会 AG8直营网 AG亚游集团 AG8亚游试玩 AG直营网 ag亚游官方网站 AG亚游在线娱乐 AG88环亚 利来娱乐 AG亚游集团