精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何理解 RAMECC FAR 寄存器的值

jf_pJlTbmA9 ? 來源: STM32單片機 ? 作者: STM32單片機 ? 2023-10-19 18:19 ? 次閱讀

1.問題原因

某客戶測試 STM32H753xi 板子上的 ECC 功能,用于監控 AXI-SRAM 區域,但不是很明白 RAMECC FAR 寄存器在 RM0433 中的描述, “Bits 31:0 FADD[31:0]: ECC error failing address”。

比如在 AXI-SRAM 中,如果客戶示例顯示的是 FAR = 0x2004,但是這個地址值 0x2004 并不在 AXI-SRAM 范圍之內,客戶該如何理解 FAR 寄存器?希望能夠有詳盡的描述,這個 FAR 寄存器的偏移地址是 Word 地址還是 Byte 地址或其他?我們先來看看相關參考手冊中關于 RAMECC 的介紹去尋找答案。

2.RAMECC 控制單元

RAM ECC 控制單元的數量取決于不同的 STM32H7 系列。比如,對于STM32H74x/5x 和 STM32H72x/3x 它們的每一個域都有一個 RAMECC 的控制器單元,為了描述簡單,表述如下:

Domain 1 (D1) RAMECC unit = RAMECC1Domain 2 (D2) RAMECC unit = RAMECC2Domain 3 (D3) RAMECC unit = RAMECC3

詳細的說明請參考 RM0433 參考手冊 rev7 中的截圖:

wKgaomUD0beAaFRyAAEUNCoKDrs078.jpg

3.RAMECC 寄存器地址

對于上圖 Table 11 的 RAMECC 控制單元的地址總結成如下表格,具體的參考RM0433 的第二章節 Memory and bus architecture 中的 table 8.

wKgaomUD0biAT8FeAABGlq5LAO4079.jpg

4.RAMECC 寄存器

每一個 RAMECC 控制單元(RAMECC1、RAMECC2、RAMECC3)的監控單元Monitor number 均分別含有如下的一套寄存器組(其中 RAMECC_IER 為共同擁有)。

接下來我們以 RAMECC1 為例進行分析,其邊界地址為:0x52009000 -0x520093FF,那么對于該 RAMECC1 控制單元中的寄存器組,對于每一個寄存器:

wKgZomUD0bmAdk4eAAHndhhQ354965.jpg

以 RAMECC1 的起始地址 0x52009000 為基準:RAMECC_IER:中斷使能,偏移地址 0x00,該寄存器地址即為:0x52009000。

RAMECC_MxCR:配置寄存器,偏移地址 0x20 *x,x 為 ECC 監控單元號,該寄存器地址的表達式為:0x52009000 + 0x20 * x ,x 取值范圍= [1..5](見上面表格 Table 11 ECC controller mapping),所以:

Monitor 1 - AXI SRAM ECC 監控單元,該寄存器地址即為 0x52009020,監控大小為整個 AXI SRAM 的 512KB 字節(0x24000000 -0x2407FFFF)。

Monitor 2 - ITCM-RAM ECC 監控單元,該寄存器地址0x52009040, 監控大小為整個ITCM RAM的64KB字節(0x00000000 -0x0000FFFF)。

Monitor 3、Monitor 4、Monitor 5 中該 RAMECC_MxCR 寄存器的地址,以此類推。

RAMECC_MxSR -- 狀態寄存器,偏移地址: 0x24 + 0x20 * (x - 1),x 為 ECC monitor number 號碼(見上面表格 Table 11 ECC controller mapping)。那么該寄存的地址為:0x52009000 + 0x24 + 0x20 * (x-1) ,x 取值范圍 = [1..5]:

Monitor 1:0x52009024

Monitor 2:0x52009044

Monitor 3 : 0x52009064

Monitor 4 : 0x52009084

Monitor 5 : 0x520090a4

RAMECC_MxFAR --失敗地址寄存器,表達式:0x52009000 + 0x28 + 0x20 * (x-1) , x取值 = [1..5]:

Monitor 1:0x52009028

Monitor 2:0x52009048

Monitor 3:0x52009068

Monitor 4:0x52009088

Monitor 5:0x520090a8

RAMECC_MxFDRL -- 失敗數據低位,表達式 0x52009000 + 0x2c + 0x20 * (x-1) ,x 取值= [1..5]

Monitor 1:0x5200902c

Monitor 2:0x5200904c

Monitor 3:0x5200906c

Monitor 4:0x5200908c

Monitor 5:0x520090ac

RAMECC_MxFDRH -- 失敗數據高位,表達式 0x52009000 + 0x30 + 0x20 * (x-1),x 取值= [1..5]

Monitor 1:0x52009030

Monitor 2:0x52009050

Monitor 3:0x52009070

Monitor 4:0x52009090

Monitor 5:0x520090b0

RAMECC_MxFECR --失敗 ECC 錯誤代碼,表達式 0x52009000 + 0x34 + 0x20 * (x1) ,x 取值 = [1..5]

Monitor 1:0x52009034

Monitor 2:0x52009054

Monitor 3:0x52009074

Monitor 4:0x52009094

Monitor 5:0x520090b4

5.解決問題

通過查詢資料與試驗,FADD[31:0]中表述的地址是 word 而不是 bit。為了計算真實的地址,客戶需要用如下公式計算:真實地址= 所處內存的首地址 + FADD x 字節數。

現在舉個例子,如上述提到的 FADD= 0x2004 :

- 對于 64-bit word 的內存 :如 AXI RAM : 0x2400 0000 + 0x2004 * 8 = 0x2401 0020;

- 對于 32-bit word 的內存 :如 SRAM1 : 0x3000 0000 + 0x2004 * 4=0x3000 8010 ;

來源: STM32單片機

免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5325

    瀏覽量

    120052
  • ECC
    ECC
    +關注

    關注

    0

    文章

    97

    瀏覽量

    20536
收藏 人收藏

    評論

    相關推薦

    基于DWC2的USB驅動開發-發送相關的寄存器DMA寄存器詳解

    的兩個寄存器,其他的后續再講, 并且通過觀察其寄存器的實際的變化來加深理解。 了解這些的含義以及何時如何變化,可以在有問題時幫助進行調試
    的頭像 發表于 07-16 16:42 ?1587次閱讀
    基于DWC2的USB驅動開發-發送相關的<b class='flag-5'>寄存器</b>DMA<b class='flag-5'>寄存器</b>詳解

    Verilog設計寄存器

    現代邏輯設計中,時序邏輯設計是核心,而寄存器又是時序邏輯的基礎,下面將介紹幾種常見的寄存器的Verilog設計代碼供初學者進行學習理解
    的頭像 發表于 07-27 09:03 ?3305次閱讀
    Verilog設計<b class='flag-5'>寄存器</b>

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內的組成部分。寄存器是有限存貯容量
    發表于 03-08 14:26 ?2.2w次閱讀

    數據寄存器,數據寄存器是什么意思

    數據寄存器,數據寄存器是什么意思 數據寄存器數據寄存器包括累加AX、基址寄存器BX、計數
    發表于 03-08 14:38 ?1.2w次閱讀

    移位寄存器,移位寄存器是什么意思

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發表于 03-08 14:50 ?1.7w次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實現。
    發表于 05-20 11:47 ?0次下載

    寄存器變量

    C語言中使用關鍵字register來聲明局部變量為寄存器變量。寄存器變量的會被存放在CPU的寄存器中,每當需要使用它們時,CPU就可以直接使用,而無須再通過控制
    發表于 06-03 10:13 ?2345次閱讀

    修改寄存器默認的方法

    寄存器默認,也叫復位,是當reset或者set有效時寄存器輸出的。對于一個DFF來說,如下圖,當reset為0時,Q輸出0;當set為
    的頭像 發表于 09-28 14:13 ?1405次閱讀

    工程師筆記|如何理解 RAMECC FAR 寄存器

    error failing address”。 比如在 AXI-SRAM 中,如果客戶示例顯示的是 FAR = 0x2004,但是這個地址 0x2004 并不在 AXI-SRAM 范圍之內,客戶該如何理解
    的頭像 發表于 12-16 19:35 ?1187次閱讀

    ARM通用寄存器及狀態寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態寄存器的認識與理解
    的頭像 發表于 01-06 14:58 ?6988次閱讀

    修改寄存器默認的方法有哪些

    寄存器默認,也叫復位,是當reset或者set有效時寄存器輸出的。對于一個DFF來說,如下圖,當reset為0時,Q輸出0;當set為
    的頭像 發表于 01-30 16:30 ?2281次閱讀
    修改<b class='flag-5'>寄存器</b>默認<b class='flag-5'>值</b>的方法有哪些

    簡化UVM寄存器模型的使用

    當我開始使用 UVM RAL 時,我無法理解 UVM 基類庫對更新所需和鏡像寄存器有什么看法。我還認為,所使用的術語沒有準確反映其意
    的頭像 發表于 05-29 10:15 ?1173次閱讀
    簡化UVM<b class='flag-5'>寄存器</b>模型的使用

    基于DUT內部寄存器的鏡像

    寄存器模型保持著DUT內部寄存器的 鏡像(mirror) 。 鏡像不能保證是正確的,因為寄存器模型只能感知到對這些
    的頭像 發表于 06-24 12:02 ?850次閱讀

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通過寄存器模型對RTL中寄存器進行讀寫訪問,或者同步寄存器模型與RTL中寄存器
    的頭像 發表于 07-12 09:37 ?1030次閱讀
    RAL<b class='flag-5'>寄存器</b>模型操作指南

    詳解寄存器模型鏡像

    DUT的配置寄存器是實際,reg_model有鏡像、期望的概念。
    的頭像 發表于 10-23 09:43 ?193次閱讀
    詳解<b class='flag-5'>寄存器</b>模型鏡像<b class='flag-5'>值</b>