日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]Cortex—M3的SRAM單元故障軟件的自檢測研究

引言
    目前,對于存儲單元SRAM的研究都是基于硬件電路來完成,而且這些方法都是運用在生產過程中,但是生產過程并不能完全杜絕SRAM的硬件故障。在其使用過程中,如果SRAM硬件出錯,將導致程序出錯而且很難被發(fā)現(xiàn)。因此在運用的階段,為防止存儲單元損壞而導致系統(tǒng)出錯,通過軟件的方式對SRAM進行檢測是必要的。

1 SRAM運行狀態(tài)分析
    SRAM是存儲非CONSTANT變量(如RW),它具有掉電即失的特點。由Cortex—M3的啟動步驟可知,系統(tǒng)上電后,首先執(zhí)行復位的5個步驟:
    ①NVIC復位,控制內核;
    ②NVIC從復位中釋放內核;
    ③內核配置堆棧;
    ④內核設置PC和LR;
    ⑤運行復位程序。
    可以看出,不能在調入C環(huán)境之后檢測SRAM,必須在Cortex—M3復位之前和啟動之后進行檢測。
    在執(zhí)行系統(tǒng)復位的最后一個步驟之前,系統(tǒng)都沒有對SRAM執(zhí)行任何相關的數(shù)據(jù)傳送動作。第⑤步運行復位程序,在ST公司Cortex-M3處理器內核的STM32系列微控制器的啟動代碼中有一段復位子程序:
  
    在這個子程序里導入了__main,__main是C庫文件的入口地址。它執(zhí)行下面3個步驟:
    ①復制非root(RW、RO)從Flash到SRAM;
    ②分配ZI區(qū),并且初始化為0;
    ③跳轉到堆棧初始化子程序接口__rt_entry。
    由_ _main的第一步可以得出,在跳入_ _main之后,系統(tǒng)對SRAM進行了相關數(shù)據(jù)轉移的操作。因此,檢測SRAM必須在此步驟之前,否則將會覆蓋SRAM從Flash中轉移過來的數(shù)據(jù)。

2 SRAM檢測方案設計
    在復位子程序跳入_ _main之前,設計另一個程序入口SRAM_Check,使PC指針指向該SRAM進行硬件單元檢測程序(SRAM_Check)的入口。在SRAM_check里,首先將PC指針指向SRAM的首地址并寫入0xFF,讀回該地址的值到通用寄存器Rn1,并對Rn1里的值進行加1操作,然后將Rn1和256做比較,得出SRAM硬件是否損壞。這種操作可以避免因SRAM硬件一直為1或0而出現(xiàn)算法本身錯誤。由于Cortex—M3復位后默認的時鐘為HSI,是一個內部RC振蕩器,因此精度不高。如果需要更準和快速的時鐘,就必須在跳入SRAM_Check之前對相關的寄存器進行操作。

3 SRAM檢測軟件設計
    圖1為本文設計的SRAM檢測軟件程序流程。

[!--empirenews.page--]



4 在線調試結果及分析
    上電復位后,在線調試PC指針指向Reset_Handler入口地址時的SRAM初始數(shù)值如圖2所示??梢钥吹剑斚到y(tǒng)復位時每個SRAM單元的數(shù)值均為0x00。


    在線調試下,圖3為對所有的SRAM地址進行檢測后SRAM的數(shù)值,完全符合程序設計要求。
    SRAM測試通過后,釋放所有的SRAM,還原為0x00,如圖4所示。



5 結論
    本文提出了一種基于軟件的SRAM單元故障自檢測方法,通過在線調試得到的結果,可知該方法是完全可行的。在實際運用中,該方法能夠確保系統(tǒng)正常地運行在可靠的環(huán)境之上。如果SRAM單元有生產或運輸?shù)葥p壞,也可以通過該方法方便地檢測出來,大大減少了系統(tǒng)排除故障的時間。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉