新聞中心

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

        Cortex M3的SRAM單元故障軟件的自檢測研究

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

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

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

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

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

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

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

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

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

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

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

          

        Cortex M3的SRAM單元故障軟件的自檢測研究

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

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

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

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

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

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

          在復(fù)位子程序跳入_ _main之前,設(shè)計另一個程序入口SRAM_Check,使PC指針指向該SRAM進(jìn)行硬件單元檢


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 湘阴县| 新平| 敖汉旗| 太白县| 益阳市| 介休市| 临湘市| 漾濞| 高碑店市| 潍坊市| 秭归县| 沂源县| 河池市| 南漳县| 亳州市| 德清县| 航空| 临夏市| 旺苍县| 肇庆市| 玉环县| 屏南县| 历史| 犍为县| 龙井市| 鞍山市| 襄垣县| 望谟县| 克什克腾旗| 乌海市| 筠连县| 太保市| 太湖县| 定日县| 徐水县| 霍山县| 新干县| 保康县| 长宁县| 金堂县| 五家渠市|