RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SRAM ECC功能以及應(yīng)用中的注意事項(xiàng)

意法半導(dǎo)體PDSA ? 來源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2021-08-13 16:36 ? 次閱讀

現(xiàn)代電子系統(tǒng)中,由于“軟”錯(cuò)誤引起的系統(tǒng)故障比永久性硬件失效引起的系統(tǒng)故障要更多。“軟”錯(cuò)誤是指可以恢復(fù)的故障或者失效。這一類錯(cuò)誤容易發(fā)生在寄存器,RAM等上面,由于受到電磁干擾或者封裝材料中的α粒子,宇宙射線等的影響而造成位值翻轉(zhuǎn)。針對這個(gè)問題,可以在硬件上加奇偶校驗(yàn),ECC電路來進(jìn)行檢測。

STM32H7系列MCU的Flash,SRAM和CACHE都支持ECC的功能。在本文中,主要介紹SRAM ECC這部分功能以及應(yīng)用中的注意事項(xiàng)。

RAMECC外設(shè)

在STM32H7系列MCU中,有一個(gè)叫RAMECC的外設(shè),它是一個(gè)RAM ECC Monitor。RAMECC提供了一個(gè)接口給應(yīng)用程序來檢測當(dāng)前RAM的ECC狀態(tài),以及當(dāng)發(fā)生ECC錯(cuò)誤后執(zhí)行相應(yīng)的恢復(fù)或者報(bào)錯(cuò)程序。

STM32H7的RAM ECC支持糾正單比特的錯(cuò)誤和檢測雙比特的錯(cuò)誤。對于AXI SRAM和TCM RAM,每64位數(shù)據(jù)附加8位ECC碼;其他的32位總線的SRAM,每32位數(shù)據(jù)附加7位ECC碼。

在對SRAM進(jìn)行寫操作的時(shí)候,硬件自動(dòng)計(jì)算并保存ECC的值,在對SRAM進(jìn)行讀操作或者非對齊的寫操作(讀-改-寫)的時(shí)候會(huì)自動(dòng)進(jìn)行校驗(yàn),并且出錯(cuò)的地址和數(shù)據(jù)可以通過寄存器讀出。

STM32H7的RAM ECC功能的實(shí)現(xiàn)可以分成兩個(gè)部分:RAM ECC Controller和RAM ECC Monitor單元,如下圖所示。

a2250f42-fb94-11eb-9bcf-12bb97331649.png

關(guān)于ECC Controller

STM32H7的SRAM分成AXI SRAM,SRAM1,SRAM2,SRAM3,SRAM4,數(shù)據(jù)TCM RAM,指令TCM RAM和備份SRAM等幾塊。每個(gè)RAM塊分別對應(yīng)一個(gè)ECC Controller。

ECC Controller始終處于使能狀態(tài)。它負(fù)責(zé)ECC代碼的計(jì)算存儲(chǔ),比較和錯(cuò)誤檢測,可以完成單比特錯(cuò)誤糾正和雙比特錯(cuò)誤檢測的功能。

關(guān)于ECC Monitor

STM32H7一共有三個(gè)ECC Monitor,各負(fù)責(zé)一個(gè)域。ECC Monitor接收來自ECC Controller的診斷事件,并根據(jù)寄存器的配置產(chǎn)生對應(yīng)的中斷信號(hào)。

ECC Controller與ECC Monitor之間的映射關(guān)系見下圖。例如D1的RAMECC Monitor單元,一共有5個(gè)通道,每個(gè)通道對應(yīng)一個(gè)SRAM塊的ECC controller。每個(gè)通道都有自己的一組寄存器,圖中的Address offset就是寄存器組的偏移地址。如果要打開AXI SRAM的ECC Monitor單元,使得當(dāng)檢測到AXI SRAM的ECC錯(cuò)誤時(shí)產(chǎn)生對應(yīng)的中斷,就需要操作AXI SRAM對應(yīng)的寄存器組。

a530b858-fb94-11eb-9bcf-12bb97331649.png

FAR和FDR寄存器

RAMECC支持單比特ECC錯(cuò)誤中斷,雙比特ECC錯(cuò)誤中斷和非對齊寫操作(Byte Write)引起的ECC中斷。在RAMECC的IER和CR寄存器中可以分別配置和使能這些中斷。在SR寄存器中可以查看這些中斷的狀態(tài)。這幾個(gè)寄存器的操作都一目了然,這里想說明的是另外兩個(gè)寄存器:出錯(cuò)地址寄存器FAR和出錯(cuò)數(shù)據(jù)寄存器FDR。

使能了CR寄存器里的ECCELEN位后,當(dāng)ECC錯(cuò)誤(單比特/雙比特錯(cuò)誤)發(fā)生后,出錯(cuò)的地址和數(shù)據(jù)就會(huì)被鎖定到FAR和FDR寄存器里。

FAR寄存器里保存的是相對地址。實(shí)際出錯(cuò)地址的計(jì)算公式如下:

實(shí)際的出錯(cuò)地址= SRAM的起始地址 + FAR寄存器的值 * N(N=4或者8)。

FDR寄存器有兩個(gè),對于64位總線的SRAM數(shù)據(jù),F(xiàn)DRL寄存器保存低4字節(jié)的數(shù)據(jù),F(xiàn)DRH保存高4字節(jié)的數(shù)據(jù)。對于32位總線的SRAM數(shù)據(jù),數(shù)據(jù)保存在FDRL寄存器中,F(xiàn)DRH的值為0。

我們可以看下面兩個(gè)例子:

例子1:使能AXI-SRAM對應(yīng)的Monitor功能(如何使能請參考STM32H7CUBE庫中的RAMECC_ErrorCount例程)。上電后AXI-SRAM先不初始化,然后直接進(jìn)行讀操作就會(huì)觸發(fā)ECC錯(cuò)誤。這時(shí)候我們在調(diào)試狀態(tài)下查看FAR和FDR的值,見下圖。

這里因?yàn)锳XI-SRAM是64位總線接口,所以計(jì)算實(shí)際出錯(cuò)地址時(shí),N的值是8。

例子2:使能SRAM1(0X30000000)對應(yīng)的Monitor功能。上電后不進(jìn)行初始,然后直接進(jìn)行讀操作就會(huì)觸發(fā)ECC錯(cuò)誤。這時(shí)候我們在調(diào)試狀態(tài)下查看FAR和FDR的值,如下圖。

因?yàn)镾RAM1是32位總線接口,所以這時(shí)N的值是4。

在應(yīng)用中如何正確使用RAM ECC

在使用支持ECC的RAM時(shí),一定要注意的是要對RAM進(jìn)行初始化,否則就可能會(huì)報(bào)ECC錯(cuò)誤。就像我們在上一節(jié)的實(shí)驗(yàn)中做的那樣,通過不初始化的做法,我們可以模擬出ECC錯(cuò)誤。在AN5342中給出了建議的初始化步驟。

對于單比特的ECC錯(cuò)誤可以在讀出的過程中自動(dòng)糾正,但僅僅只是讀出的數(shù)據(jù)是正確的,為了防止錯(cuò)誤累積,導(dǎo)致從單比特的錯(cuò)誤變成雙比特的錯(cuò)誤,可以在檢測到單比特錯(cuò)誤后,將正確的值寫回到SRAM中去。這里有兩種方式,一種如果原本SRAM中保存的值在Flash有備份,那么直接將Flash中的值再次寫到SRAM中去;或者利用前面提到的FAR和FDR寄存器將正確的值寫回SRAM中。

通過周期性的ECC檢測來主動(dòng)發(fā)現(xiàn)SRAM的故障也是提高系統(tǒng)可靠性的方法。ECC檢測可以通過讀SRAM的值來進(jìn)行。檢測不需要一次性完成,可以在系統(tǒng)空閑時(shí),分段的對SRAM進(jìn)行檢測。請參考AN5342了解更多的細(xì)節(jié)。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120229
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355722

原文標(biāo)題:工程師筆記 | STM32H7 RAMECC功能及應(yīng)用

文章出處:【微信號(hào):STM_IPGChina,微信公眾號(hào):意法半導(dǎo)體PDSA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    PCB設(shè)計(jì)對電流回路的注意事項(xiàng)

    PCB設(shè)計(jì)對電流回路的注意事項(xiàng) 對于電流回路,需要注意如下基本事項(xiàng)
    發(fā)表于 04-16 18:05 ?4166次閱讀
    PCB設(shè)計(jì)<b class='flag-5'>中</b>對電流回路的<b class='flag-5'>注意事項(xiàng)</b>

    開關(guān)電源芯片TB3815各腳的功能以及調(diào)試中注意事項(xiàng)

    開關(guān)電源芯片TB3815各腳的功能以及調(diào)試中注意事項(xiàng):1.VDD供電腳:TB3815 的啟動(dòng)電流低至1uA,可有效地減少系統(tǒng)啟動(dòng)電路的損耗,減小待機(jī)功耗。啟動(dòng)閾值電壓13.6V 關(guān)斷閾值電壓7.6V
    發(fā)表于 01-02 16:20

    外部SRAM的種類和注意事項(xiàng)

    外部SRAM注意事項(xiàng)外部SRAM的種類
    發(fā)表于 12-30 07:17

    max485專用總線在使用的規(guī)范、標(biāo)準(zhǔn)以及注意事項(xiàng)是什么?

    max485專用總線在使用的規(guī)范、標(biāo)準(zhǔn)以及注意事項(xiàng)是什么?
    發(fā)表于 05-20 07:11

    CAN總線的特點(diǎn)以及應(yīng)用注意事項(xiàng)

    被廣泛應(yīng)用汽車及各種工業(yè)環(huán)境。在此我們主要介紹一下CAN總線的特點(diǎn),幀類型,以及應(yīng)用注意事項(xiàng)。CAN總線特點(diǎn)1.1 多主控制跟我們常用的RS485只有一個(gè)主機(jī),從機(jī)只能等待主機(jī)的輪詢不同,在CAN總...
    發(fā)表于 08-20 06:53

    車輛電氣化電池管理功能安全注意事項(xiàng)

    車輛電氣化電池管理功能安全注意事項(xiàng)。本文研究了電池監(jiān)測器滿足功能安全的注意事項(xiàng)電動(dòng)汽車標(biāo)準(zhǔn)
    發(fā)表于 01-10 10:27

    HDMI在TV應(yīng)用注意事項(xiàng)

    HDMI在TV應(yīng)用注意事項(xiàng)HDMI 在TV 應(yīng)用注意事項(xiàng)HDMI 做為一種新的數(shù)字視頻接口規(guī)范,其應(yīng)用越來越廣泛。應(yīng)
    發(fā)表于 10-22 08:45 ?2376次閱讀
    HDMI在TV應(yīng)用<b class='flag-5'>中</b>的<b class='flag-5'>注意事項(xiàng)</b>

    外部SRAM的種類及注意事項(xiàng)

    外部SRAM注意事項(xiàng) 為使外部SRAM器件達(dá)到出最佳性能,建議遵循以下原則: 使用與連接的主系統(tǒng)控制器的接口數(shù)據(jù)帶寬相同的SRAM。 如果管腳使用或板上空間的限制高于系統(tǒng)性能要求,可以
    發(fā)表于 04-03 15:58 ?1214次閱讀

    PCB油墨的特性以及使用注意事項(xiàng)解析

    從PCB油墨的特性和使用注意事項(xiàng),我們知道PCB油墨在使用前必須充份地和仔細(xì)地?cái)嚢杈鶆颉?/div>
    發(fā)表于 04-20 16:09 ?1781次閱讀

    使用注意事項(xiàng)

    使用注意事項(xiàng)
    發(fā)表于 03-17 20:14 ?1次下載
    使用<b class='flag-5'>注意事項(xiàng)</b>

    安全光幕選型方法以及注意事項(xiàng)

    安全光幕選型方法以及注意事項(xiàng)
    的頭像 發(fā)表于 06-28 14:35 ?855次閱讀
    安全光幕選型方法<b class='flag-5'>以及</b><b class='flag-5'>注意事項(xiàng)</b>

    安全光幕選型方法以及注意事項(xiàng)

    安全光幕選型方法以及注意事項(xiàng)
    的頭像 發(fā)表于 07-06 13:59 ?938次閱讀
    安全光幕選型方法<b class='flag-5'>以及</b><b class='flag-5'>注意事項(xiàng)</b>

    使用注意事項(xiàng)

    使用注意事項(xiàng)
    發(fā)表于 07-07 19:04 ?0次下載
    使用<b class='flag-5'>注意事項(xiàng)</b>

    8位MCU EEPROM使用注意事項(xiàng)

    穎8位MCU EEPROM使用注意事項(xiàng)
    的頭像 發(fā)表于 09-27 15:34 ?1177次閱讀
    <b class='flag-5'>中</b>8位MCU EEPROM使用<b class='flag-5'>注意事項(xiàng)</b>

    電源的電容作用及注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《電源的電容作用及注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 11-13 09:21 ?0次下載
    電源<b class='flag-5'>中</b>的電容作用及<b class='flag-5'>注意事項(xiàng)</b>
    RM新时代网站-首页