您的位置:電子發(fā)燒友網(wǎng) > 電子技術(shù)應(yīng)用 > 嵌入式技術(shù) > 嵌入式設(shè)計(jì)應(yīng)用 >
Cortex M3的SRAM單元故障軟件的自檢測(cè)研究
2011年07月29日 11:12 來(lái)源:單片機(jī)與嵌入式系統(tǒng) 作者:孫偉旺,孫利鋒 我要評(píng)論(0)
目前,對(duì)于存儲(chǔ)單元SRAM的研究都是基于硬件電路來(lái)完成,而且這些方法都是運(yùn)用在生產(chǎn)過(guò)程中,但是生產(chǎn)過(guò)程并不能完全杜絕SRAM的硬件故障。在其使用過(guò)程中,如果SRAM硬件出錯(cuò),將導(dǎo)致程序出錯(cuò)而且很難被發(fā)現(xiàn)。因此在運(yùn)用的階段,為防止存儲(chǔ)單元損壞而導(dǎo)致系統(tǒng)出錯(cuò),通過(guò)軟件的方式對(duì)SRAM進(jìn)行檢測(cè)是必要的。
1 SRAM運(yùn)行狀態(tài)分析
SRAM是存儲(chǔ)非CONSTANT變量(如RW),它具有掉電即失的特點(diǎn)。由Cortex—M3的啟動(dòng)步驟可知,系統(tǒng)上電后,首先執(zhí)行復(fù)位的5個(gè)步驟:
?、貼VIC復(fù)位,控制內(nèi)核;
?、贜VIC從復(fù)位中釋放內(nèi)核;
?、蹆?nèi)核配置堆棧;
?、軆?nèi)核設(shè)置PC和LR;
?、葸\(yùn)行復(fù)位程序。
可以看出,不能在調(diào)入C環(huán)境之后檢測(cè)SRAM,必須在Cortex—M3復(fù)位之前和啟動(dòng)之后進(jìn)行檢測(cè)。
在執(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ù)位子程序:

在這個(gè)子程序里導(dǎo)入了__main,__main是C庫(kù)文件的入口地址。它執(zhí)行下面3個(gè)步驟:
?、?gòu)?fù)制非root(RW、RO)從Flash到SRAM;
?、诜峙鋃I區(qū),并且初始化為0;
?、厶D(zhuǎn)到堆棧初始化子程序接口__rt_entry。
由_ _main的第一步可以得出,在跳入_ _main之后,系統(tǒng)對(duì)SRAM進(jìn)行了相關(guān)數(shù)據(jù)轉(zhuǎn)移的操作。因此,檢測(cè)SRAM必須在此步驟之前,否則將會(huì)覆蓋SRAM從Flash中轉(zhuǎn)移過(guò)來(lái)的數(shù)據(jù)。
2 SRAM檢測(cè)方案設(shè)計(jì)
在復(fù)位子程序跳入_ _main之前,設(shè)計(jì)另一個(gè)程序入口SRAM_Check,使PC指針指向該SRAM進(jìn)行硬件單元檢測(cè)程序(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檢測(cè)軟件設(shè)計(jì)
圖1為本文設(shè)計(jì)的SRAM檢測(cè)軟件程序流程。

本文導(dǎo)航
- 第 1 頁(yè):Cortex M3的SRAM單元故障軟件的自檢測(cè)研究
- 第 2 頁(yè):在線調(diào)試結(jié)果及分析
用戶評(píng)論
發(fā)表評(píng)論
SRAM業(yè)界動(dòng)態(tài)
SRAM技術(shù)應(yīng)用
SRAM資料下載
- 面向豐富實(shí)時(shí)應(yīng)用的Vybrid控制器解決方案,第1部分:簡(jiǎn)介
- DS1251,DS1251P 4096k NV SRAM
- DS1248,DS1248P 1024k NV SRAM
- DS1243,DS1243Y 64k 非易失SRAM
- 基于PSoC3 UDB的異步SRAM讀寫控制
- 如何分配IAR編譯器上的MAX微控制器閃存和SRAM內(nèi)存
- 低壓低功耗Flash bicmos SRAM的設(shè)計(jì)
- C8051與SRAM的高速接口
- 8515 SRAM AVR的RAM擴(kuò)展方法
- 數(shù)據(jù)采集系統(tǒng)中用SRAM模擬雙口RAM
ST技術(shù)應(yīng)用
意法(ST)推通過(guò)國(guó)際標(biāo)準(zhǔn)認(rèn)證的汽車突波保護(hù)元件
電子發(fā)燒友網(wǎng)視界:行業(yè)每周(5.14-5.20)焦點(diǎn)匯總
ST資料下載
- 最新ST官方ISP下載軟件2.0版
- ST微控制器振蕩器設(shè)計(jì)指南
- STM32F10X系列微控制器標(biāo)準(zhǔn)外設(shè)庫(kù)的應(yīng)用
- ST STM32L152 32位MCU開發(fā)評(píng)估方案
- ST/PC型單模光纖光纜活動(dòng)連接器技術(shù)規(guī)范
- 液晶顯示控制器ST7920的接口方式研究
- 基于MPC860與ST16C654的串行通信設(shè)計(jì)
- 三墾電氣開關(guān)電源控制IC STR-T2000系列應(yīng)用手冊(cè)
- 基于ST提供的USB例程實(shí)現(xiàn)USB IAP功能
- ST-LINKII驅(qū)動(dòng)設(shè)置手冊(cè)