《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > ARM Cortex-M3的SRAM單元故障軟件的自檢測研究
ARM Cortex-M3的SRAM單元故障軟件的自檢測研究
摘要: 目前,對(duì)于存儲(chǔ)單元SRAM的研究都是基于硬件電路來完成,而且這些方法都是運(yùn)用在生產(chǎn)過程中,但是生產(chǎn)過程并不能完全杜絕SRAM的硬件故障。在其使用過程中,如果SRAM硬件出錯(cuò),將導(dǎo)致程序出錯(cuò)而且很難被發(fā)現(xiàn)。因此在運(yùn)用的階段,為防止存儲(chǔ)單元損壞而導(dǎo)致系統(tǒng)出錯(cuò),通過軟件的方式對(duì)SRAM進(jìn)行檢測是必要的。
關(guān)鍵詞: ARM Cortex-M3 SRAM
Abstract:
Key words :
  引言

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

  1 SRAM運(yùn)行狀態(tài)分析

  SRAM是存儲(chǔ)非CONSTANT變量(如RW),它具有掉電即失的特點(diǎn)。由Cortex—M3的啟動(dòng)步驟可知,系統(tǒng)上電后,首先執(zhí)行復(fù)位的5個(gè)步驟:

  ①NVIC復(fù)位,控制內(nèi)核;

  ②NVIC從復(fù)位中釋放內(nèi)核;

  ③內(nèi)核配置堆棧;

  ④內(nèi)核設(shè)置PC和LR;

  ⑤運(yùn)行復(fù)位程序。

  可以看出,不能在調(diào)入C環(huán)境之后檢測SRAM,必須在Cortex—M3復(fù)位之前和啟動(dòng)之后進(jìn)行檢測。

  在執(zhí)行系統(tǒng)復(fù)位的最后一個(gè)步驟之前,系統(tǒng)都沒有對(duì)SRAM執(zhí)行任何相關(guān)的數(shù)據(jù)傳送動(dòng)作。第⑤步運(yùn)行復(fù)位程序,在ST公司Cortex-M3處理器內(nèi)核的STM32系列微控制器的啟動(dòng)代碼中有一段復(fù)位子程序:

c.JPG

  在這個(gè)子程序里導(dǎo)入了__main,__main是C庫文件的入口地址。它執(zhí)行下面3個(gè)步驟:

  ①復(fù)制非root(RW、RO)從Flash到SRAM;

  ②分配ZI區(qū),并且初始化為0;

  ③跳轉(zhuǎn)到堆棧初始化子程序接口__rt_entry。

  由__main的第一步可以得出,在跳入__main之后,系統(tǒng)對(duì)SRAM進(jìn)行了相關(guān)數(shù)據(jù)轉(zhuǎn)移的操作。因此,檢測SRAM必須在此步驟之前,否則將會(huì)覆蓋SRAM從Flash中轉(zhuǎn)移過來的數(shù)據(jù)。

  2 SRAM檢測方案設(shè)計(jì)

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

  3 SRAM檢測軟件設(shè)計(jì)

  圖1為本文設(shè)計(jì)的SRAM檢測軟件程序流程。

d.JPG

  4 在線調(diào)試結(jié)果及分析

  上電復(fù)位后,在線調(diào)試PC指針指向Reset_Handler入口地址時(shí)的SRAM初始數(shù)值如圖2所示。可以看到,當(dāng)系統(tǒng)復(fù)位時(shí)每個(gè)SRAM單元的數(shù)值均為0x00。

a.JPG

  在線調(diào)試下,圖3為對(duì)所有的SRAM地址進(jìn)行檢測后SRAM的數(shù)值,完全符合程序設(shè)計(jì)要求。

  SRAM測試通過后,釋放所有的SRAM,還原為0x00,如圖4所示。

b.JPG

  5 結(jié)論

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



 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 国产成人欧美一区二区三区vr | 亚洲激情视频在线播放 | 国产91网| 成年黄网站在线观看免费 | 日韩伦理影院 | 97精品国产91久久久久久 | 在线片视频网站 | 欧美丝袜自拍 | 国产无遮挡裸体免费视频在线观看 | 国产在线精品成人一区二区三区 | 成人狠狠色综合 | 天天都色 | 大片免费播放器免费观看 | 亚洲欧洲免费 | 999久久免费高清热精品 | 欧美高清视频手机在在线 | 日本一区二区影院 | 亚洲一区中文 | 日韩一级一欧美一级国产 | 88xx成人精品| 欧日韩美香蕉在线观看 | 国产高清视频青青青在线 | 日本一区二区三区免费高清在线 | 日本三级一区二区三区 | 免费一级α片在线观看 | 男女性刺激爽爽免费视频 | 精品久久久一二三区 | 99精品欧美 | 亚洲综合偷自成人网第页 | 国产一区二区三区免费在线视频 | 一色屋免费视频 | 日本爽爽爽爽爽爽在线观看免 | 热99re久久精品精品免费 | 国产日韩欧美精品 | 日韩欧美精品综合久久 | 色婷婷综合久久久中文字幕 | 在线久操 | 色偷偷尼玛图亚洲综合 | 欧美性f| 欧美国产成人免费观看永久视频 | 欧美一区二区视频在线观看 |