新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > Cortex M3的SRAM單元故障軟件的自檢測(cè)研究

Cortex M3的SRAM單元故障軟件的自檢測(cè)研究

作者: 時(shí)間:2013-09-25 來(lái)源:網(wǎng)絡(luò) 收藏

目前,對(duì)于存儲(chǔ)單元的研究都是基于硬件電路來(lái)完成,而且這些方法都是運(yùn)用在生產(chǎn)過(guò)程中,但是生產(chǎn)過(guò)程并不能完全杜絕的硬件故障。在其使用過(guò)程中,如果硬件出錯(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)。由的啟動(dòng)步驟可知,系統(tǒng)上電后,首先執(zhí)行復(fù)位的5個(gè)步驟:

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

 ?、贜VIC從復(fù)位中釋放內(nèi)核;

 ?、蹆?nèi)核配置堆棧;

 ?、軆?nèi)核設(shè)置PC和LR;

 ?、葸\(yùn)行復(fù)位程序。

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

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

  

Cortex M3的SRAM單元故障軟件的自檢測(cè)研究

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

 ?、?gòu)?fù)制非root(RW、RO)從Flash到SRAM;

 ?、诜峙鋃I區(qū),并且初始化為0;

  ③跳轉(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)行硬件單元檢


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉