一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

S32K1xx的ECC錯(cuò)誤處理機(jī)制

痞子衡嵌入式 ? 來源:大寧筆記不重名 ? 2023-03-16 09:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 背景

ECC(Error Correcting Code)的目的是保證RAM和Flash等存儲(chǔ)器中數(shù)據(jù)和程序代碼的完整性和可靠性,在汽車MCU中被廣泛應(yīng)用,引起位錯(cuò)誤的原因有多種,包括輻射(中子或阿爾法粒子)、電磁干擾、電噪聲或電路短路等原因。在原理上ECC是在對(duì)用戶開放的存儲(chǔ)器之外的區(qū)域額外增加存儲(chǔ)單元來存儲(chǔ)ECC計(jì)算結(jié)果,所以通常不占用額外的RAM空間,當(dāng)數(shù)據(jù)被讀取時(shí)ECC會(huì)實(shí)時(shí)校驗(yàn)待讀取數(shù)據(jù)的正確性,在檢測(cè)到錯(cuò)誤時(shí)及時(shí)進(jìn)行自動(dòng)糾正或者產(chǎn)生錯(cuò)誤通知,進(jìn)而產(chǎn)生實(shí)施相應(yīng)的安全機(jī)制。

KW45也支持RAM的ECC錯(cuò)誤檢測(cè),最近有用戶問到其工作機(jī)制和錯(cuò)誤處理機(jī)制,剛好看到S32K1有篇文檔AN12522介紹相關(guān)內(nèi)容,盡管兩者在RAM區(qū)間的劃分,ECC支持的范圍以及錯(cuò)誤注入功能上有很多區(qū)別,但其思想基本一致,可以作為借鑒,此文直接分享(僅修改一個(gè)翻譯錯(cuò)誤之處)。

S32K1xx系列中使用的ECC方法提供單錯(cuò)誤糾正(SEC)和雙錯(cuò)誤檢測(cè)(DED)功能。本應(yīng)用筆記旨在描述如何在S32K1xx系列中實(shí)現(xiàn)ECC保護(hù),并了解S32K14x和S32K11x器件的特定ECC事件響應(yīng)。

2. SRAM ECC錯(cuò)誤處理

2.1 上電復(fù)位后SRAM初始化

S32K1 SRAM分為兩個(gè)區(qū)域:SRAM_L和SRAM_U。RAM的實(shí)現(xiàn)使得SRAM_L和SRAM_U位于內(nèi)存映射中的一個(gè)連續(xù)塊。有關(guān)更多詳細(xì)信息,可以參閱參考手冊(cè)中隨附的S32K1xx_memory_map.xlsx文件。

Note: S32K11x器件的SRAM_L不受ECC保護(hù), 用作系統(tǒng)RAM的FlexRAM 沒有ECC, LPUART和FlexCAN RAM受 ECC保護(hù)。

SRAM的復(fù)位狀態(tài)未知,因此數(shù)據(jù)可能包含隨機(jī)數(shù)據(jù)。對(duì)任何地址的第一次讀取嘗試都很可能會(huì)產(chǎn)生不可糾正的ECC錯(cuò)誤。在讀取每個(gè)內(nèi)存地址之前,必須將其寫入一個(gè)已知值。如果讀取未初始化的內(nèi)存地址,則讀取操作可能會(huì)導(dǎo)致多位ECC錯(cuò)誤和AHB上的錯(cuò)誤。因此, SRAM必須在上電后初始化,包括外設(shè)RAM存儲(chǔ)器,如LPUART和FlexCAN RAM。

2.2 使用的ECC算法

SRAM的ECC實(shí)現(xiàn)使用修改漢明碼方案,該方案具有40位校驗(yàn)基,由32位數(shù)據(jù)和8奇偶校驗(yàn)位組成。

2.3 單比特錯(cuò)誤的ECC

S32K14x 和S32K11x設(shè)備以相同的方式處理單比特錯(cuò)誤。錯(cuò)誤報(bào)告模塊(ERM)可以生成中斷(如果已啟用)以通知單比特位更正事件,該事件可以通過將CR0[ESCIEx]位設(shè)置為1來啟用。在事件發(fā)生后,可以通過三種方式處理錯(cuò)誤:

MCU正常運(yùn)行:MCU檢測(cè)到故障(故障檢測(cè)時(shí)間)然后糾正(故障反應(yīng)時(shí)間)。此時(shí)MCU繼續(xù)正常運(yùn)行。

具有適當(dāng)?shù)墓δ馨踩珯C(jī)制來管理故障:MCU檢測(cè)故障(故障檢測(cè)時(shí)間)然后糾正(故障反應(yīng)時(shí)間)。此時(shí)軟件必須切換 到safe_state_system(safe_state_system是一種沒有不合理的概率發(fā)生對(duì)任何人身體傷害或健康損害的操作模式)。Safe_state_system必須由用戶定義。

有任何合適的功能安全機(jī)制:MCU檢測(cè)到故障(故障檢測(cè)時(shí)間),然后糾正它,但沒有通知用戶發(fā)生了錯(cuò)誤。容錯(cuò)時(shí)間間隔(FTTI)過后,可能會(huì)出現(xiàn)危險(xiǎn)。

4aa1b820-c374-11ed-bfe3-dac502259ad0.png

2.4 不可糾正錯(cuò)誤的ECC

S32K14x和S32K11x設(shè)備以不同的方式處理不可糾正的錯(cuò)誤。錯(cuò)誤報(bào)告模塊(ERM)可以生成中斷(如果已啟用)以通知雙位錯(cuò)誤事件,可以將CR0[ENCIEx]位設(shè)置為1來啟用該事件。

S32K14x錯(cuò)誤處理:當(dāng)故障發(fā)生時(shí),CPU跳轉(zhuǎn)到錯(cuò)誤報(bào)告模塊(ERM)中斷處理程序(如果啟用)。

S32K11x錯(cuò)誤處理:

當(dāng)發(fā)生故障時(shí),CPU首先跳轉(zhuǎn)到硬故障(hard fault)錯(cuò)誤中斷處理程序,緊接著,ERM中斷標(biāo)志被置位。

此時(shí),用戶必須檢查ERM狀態(tài)寄存器是否顯示不可糾正的ECC錯(cuò)誤事件。

如果是,建議遵循推薦的反應(yīng)(系統(tǒng)復(fù)位)。

Note: 必須確保在硬故障異常處理期間不對(duì)SRAM_U進(jìn)行讀訪問,否則會(huì)導(dǎo)致內(nèi)核鎖定。因此,應(yīng)更新鏈接器文件, 以使堆棧、向量表、硬故障處理程序中使用的變量等不應(yīng)位于SRAM_U, 建議放置在SRAM_L和FlexRAM。(此處原文翻譯有錯(cuò))

一旦發(fā)生此事件,有三種方法可以繼續(xù):

MCU正常運(yùn)行:MCU檢測(cè)到故障(故障檢測(cè)時(shí)間)然后上報(bào)(故障反應(yīng)時(shí)間)

具有適當(dāng)?shù)墓δ馨踩珯C(jī)制來管理故障:MCU檢測(cè)到故障(故障檢測(cè)時(shí)間)然后上報(bào)(故障反應(yīng)時(shí)間)。

有任何合適的功能安全機(jī)制:MCU檢測(cè)故障(故障檢測(cè)時(shí)間)。容錯(cuò)時(shí)間間隔(FTTI)過后,將出現(xiàn)危險(xiǎn)。

4ad87612-c374-11ed-bfe3-dac502259ad0.png

2.5 SRAM錯(cuò)誤注入

錯(cuò)誤注入模塊(EIM)用于診斷目的,以便在訪問SRAM時(shí)引發(fā)讀取數(shù)據(jù)的單位和多位反轉(zhuǎn)。當(dāng)EIM用于向內(nèi)存注入故障時(shí),對(duì)SRAM的任何訪問都會(huì)產(chǎn)生相應(yīng)的注入錯(cuò)誤(單位或雙位錯(cuò)誤)。EIM支持兩個(gè)錯(cuò)誤注入通道,分別對(duì)應(yīng)于特定的RAM陣列。下表顯示了不同S32K1xx衍生產(chǎn)品的通道分配。

4af986fe-c374-11ed-bfe3-dac502259ad0.png

對(duì)于安全應(yīng)用,建議檢查將錯(cuò)誤注入SRAM的ECC功能,以檢查此類錯(cuò)誤的報(bào)告。

3. FLASH ECC錯(cuò)誤處理

S32K1xx Flash中實(shí)現(xiàn)的ECC邏輯可以自動(dòng)糾正單比特故障,并可以檢測(cè)每個(gè)NVM分區(qū)(section)的多比特故障。使用 FERCNFG[DFDIE]位啟用多位故障。當(dāng)檢測(cè)到多位錯(cuò)誤時(shí),F(xiàn)ERSTAT[DFDIF]標(biāo)志置位,產(chǎn)生中斷請(qǐng)求。當(dāng)FlexNVM區(qū)域配置為模擬EEPROM時(shí),在從模擬EEPROM讀取數(shù)據(jù)復(fù)制到EEERAM之前,任何單位ECC錯(cuò)誤都會(huì)自動(dòng)更正。在有效的模擬EEPROM位置上的任何雙位ECC錯(cuò)誤,包含需要復(fù)制到EEERAM的數(shù)據(jù),反映為EEERAM中都為1的相應(yīng)數(shù)據(jù)記錄。

3.1 使用的ECC算法

NVM存儲(chǔ)器的ECC實(shí)現(xiàn)使用修改漢明碼方案,該方案具有72位校驗(yàn)基,由64位數(shù)據(jù)和8個(gè)奇偶校驗(yàn)位組成。

3.2 不可糾正錯(cuò)誤的ECC

S32K14x和S32K11x設(shè)備以相同的方式處理不可糾正的錯(cuò)誤。閃存模塊(FTFC)可以生成中斷(如果已啟用)以通知多位錯(cuò)誤事件,該事件可以通過將FERCNGFG[DFDIE]位設(shè)置為1來啟用。

? S32K1xx錯(cuò)誤處理:當(dāng)故障發(fā)生時(shí),F(xiàn)ERSTAT[DFDIF]標(biāo)志置位,通知檢測(cè)到雙位故障。閃存控制器將生成導(dǎo)致總線故障 (bus fault)的AHB錯(cuò)誤響應(yīng)(如果啟用)。處理總線故障后,跳轉(zhuǎn)到閃存模塊(FTFC)中斷處理程序(如果已啟用)。軟件可以根據(jù)錯(cuò)誤發(fā)生在代碼空間還是數(shù)據(jù)空間來處理錯(cuò)誤。

如果在執(zhí)行機(jī)器異常過程中出現(xiàn)不可糾正的錯(cuò)誤故障,則應(yīng)進(jìn)入安全狀態(tài)。

默認(rèn)情況下禁用總線故障。因此,它將升級(jí)為硬故障(hard fault)。

3.3 閃存錯(cuò)誤模擬

閃存模塊(FTFC)允許用戶模擬FERSTAT[DFDIF]標(biāo)志的設(shè)置已檢查相關(guān)的中斷程序。設(shè)置FERCNFG[FDFD]位會(huì)創(chuàng)建錯(cuò)誤仿真。

考慮到真正的流程是在進(jìn)入閃存錯(cuò)誤處理程序之前首先跳轉(zhuǎn)到BusFault(如果啟用)。

不允許對(duì)閃存位置內(nèi)的位進(jìn)行累積編程(沒有擦除的情況下連續(xù)編程操作)

審核編輯:湯梓紅

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

    關(guān)注

    146

    文章

    17984

    瀏覽量

    366959
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1679

    瀏覽量

    151840
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7653

    瀏覽量

    167411
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    786

    瀏覽量

    115966
  • ECC
    ECC
    +關(guān)注

    關(guān)注

    0

    文章

    97

    瀏覽量

    21102

原文標(biāo)題:S32K1xx的ECC錯(cuò)誤處理機(jī)制

文章出處:【微信號(hào):pzh_mcu,微信公眾號(hào):痞子衡嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式編程錯(cuò)誤處理機(jī)制設(shè)計(jì)

    本文主要總結(jié)嵌入式系統(tǒng)C語言編程中,主要的錯(cuò)誤處理方式。文中涉及的代碼運(yùn)行環(huán)境如下。
    發(fā)表于 04-28 09:59 ?1031次閱讀
    嵌入式編程<b class='flag-5'>錯(cuò)誤處理機(jī)制</b>設(shè)計(jì)

    S32K1XX系列MCU復(fù)位問題的解決方法

    最近有朋友調(diào)試S32K1XX系列的一塊控制板,遇到了一個(gè)奇怪的問題,就是板子不斷復(fù)位,無法連接下載器,而且問題找不到,于是我協(xié)助他調(diào)試了一下,然后最后發(fā)現(xiàn)竟然是芯片內(nèi)部的復(fù)位導(dǎo)致的,而且10塊板子均有復(fù)位波形【注意不是一直低電平的復(fù)位】,且并不是硬件設(shè)計(jì)的原因,今天分享給大家。
    發(fā)表于 08-23 13:03 ?3311次閱讀
    <b class='flag-5'>S32K1XX</b>系列MCU復(fù)位問題的解決方法

    Rust語言中錯(cuò)誤處理機(jī)制

    可能的錯(cuò)誤,實(shí)際運(yùn)行中仍然可能出現(xiàn)各種各樣的錯(cuò)誤,比如文件不存在、網(wǎng)絡(luò)連接失敗等等。對(duì)于這些不可預(yù)測(cè)的錯(cuò)誤,我們必須使用錯(cuò)誤處理機(jī)制來進(jìn)行處理
    的頭像 發(fā)表于 09-19 14:54 ?1895次閱讀

    S32K1xx系列MCU的EEE(Emulated EEPROM)使用詳解 精選資料分享

    內(nèi)容提要引言(基于MCU的嵌入式系統(tǒng)中EEPROM的實(shí)現(xiàn)方式)1. S32K1xx系列MCU的EEE工作機(jī)制詳解1.1 S32K1xx系列MCU的片上存儲(chǔ)器資源1.2
    發(fā)表于 09-13 07:43

    S32K1xx系列MCU啟動(dòng)過程是怎樣的

    內(nèi)容提要注:本文摘自NXP工程師胡恩偉的微信公眾號(hào)"汽車電子expert成長(zhǎng)之路",大家感興趣可以關(guān)注一下。引言1. S32K1xx系列MCU啟動(dòng)過程詳解
    發(fā)表于 11-01 07:10

    如何搭建s32k1xx的環(huán)境?

    如何搭建s32k1xx的環(huán)境?
    發(fā)表于 02-09 07:55

    安裝S32SDK S32K1XX RTM 4.0.2,IDE無法識(shí)別安裝是怎么回事?

    我正在嘗試安裝 S32SDK S32K1XX RTM 4.0.2,但在安裝下載的 exe 后,IDE 無法識(shí)別安裝。有一些指南通過 .zip 文件描述安裝,但只有在下載時(shí)才會(huì)有 exe。如何指示 S32Design Studio
    發(fā)表于 03-30 08:49

    S32K3xx EMIOS模塊與S32K1xx FTM模塊相比有什么優(yōu)勢(shì)?

    我想知道S32K3xx EMIOS模塊與S32K1xx FTM模塊相比有什么優(yōu)勢(shì)?
    發(fā)表于 03-31 09:08

    S32K1xx開發(fā)包和S32K1實(shí)時(shí)驅(qū)動(dòng)的區(qū)別是什么?

    S32DS (Design Studio) 中的 S32K1xx 開發(fā)包是什么。 什么是 S32K1 實(shí)時(shí)驅(qū)動(dòng)程序。 區(qū)別和應(yīng)該安裝哪個(gè)還是都安裝?
    發(fā)表于 05-24 10:39

    AN5426,S32K1XX微控制器的硬件設(shè)計(jì)指南

    本文檔為S32K1XX微控制器的硬件設(shè)計(jì)指南,有需要的可以下載!
    發(fā)表于 12-22 16:12 ?77次下載
    AN5426,<b class='flag-5'>S32K1XX</b>微控制器的硬件設(shè)計(jì)指南

    NXP半導(dǎo)體產(chǎn)品S32K1XX數(shù)據(jù)手冊(cè)下載

    NXP半導(dǎo)體產(chǎn)品S32K1XX數(shù)據(jù)手冊(cè)下載
    發(fā)表于 08-02 09:23 ?15次下載

    vb關(guān)閉當(dāng)前應(yīng)用重新加載_S32K1xx系列MCU應(yīng)用指南之芯片鎖死(lockup)復(fù)位原因分析與恢復(fù)方法詳解...

    內(nèi)容提要1. S32K1xx系列MCU的存儲(chǔ)器加密(Security)和保護(hù)(Protection)工作機(jī)制1.1 S32K1xx系列MCU的Flash配置區(qū)域(Flash
    發(fā)表于 10-28 21:06 ?11次下載
    vb關(guān)閉當(dāng)前應(yīng)用重新加載_<b class='flag-5'>S32K1xx</b>系列MCU應(yīng)用指南之芯片鎖死(lockup)復(fù)位原因分析與恢復(fù)方法詳解...

    S32K1xx系列MCU的EEE(Emulated EEPROM)使用詳解

    內(nèi)容提要引言(基于MCU的嵌入式系統(tǒng)中EEPROM的實(shí)現(xiàn)方式)1. S32K1xx系列MCU的EEE工作機(jī)制詳解1.1 S32K1xx系列MCU的片上存儲(chǔ)器資源1.2
    發(fā)表于 11-18 17:21 ?25次下載
    <b class='flag-5'>S32K1xx</b>系列MCU的EEE(Emulated EEPROM)使用詳解

    西門子博圖:錯(cuò)誤處理機(jī)制概覽

    可通過以下幾種不同的錯(cuò)誤處理機(jī)制進(jìn)行參數(shù)跟蹤或編程或訪問錯(cuò)誤
    的頭像 發(fā)表于 11-25 11:35 ?4105次閱讀
    西門子博圖:<b class='flag-5'>錯(cuò)誤處理機(jī)制</b>概覽

    C語言中的錯(cuò)誤處理機(jī)制解析

    C 語言不提供對(duì)錯(cuò)誤處理的直接支持,但是作為一種系統(tǒng)編程語言,它以返回值的形式允許您訪問底層數(shù)據(jù)。
    的頭像 發(fā)表于 02-26 11:19 ?782次閱讀