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

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

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

3天內不再提示

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

STM32單片機 ? 來源:未知 ? 2022-12-16 19:35 ? 次閱讀


關鍵詞:STM32H7, RAMECC



目錄預覽




1.問題原因

2.RAMECC 控制單元

3.RAMECC 寄存器地址

4.RAMECC 寄存器

5.解決問題



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 中的截圖:



3.RAMECC 寄存器地址

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



4.RAMECC 寄存器

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


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


以 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 ;

END


點擊“閱讀原文”,可下載原文檔


原文標題:工程師筆記|如何理解 RAMECC FAR 寄存器的值

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

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

    關注

    6032

    文章

    44525

    瀏覽量

    633259
  • STM32
    +關注

    關注

    2266

    文章

    10876

    瀏覽量

    354926

原文標題:工程師筆記|如何理解 RAMECC FAR 寄存器的值

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Modbus協議的讀取保持寄存器

    功能碼用于讀取從設備保持寄存器的內容,不支持廣播模式。消息頓中指定了需要讀取的保持寄存器的起始地址和數目。而保持寄存器中各地址的具體內容和意義則由設備開發者自行規定。
    的頭像 發表于 10-30 10:54 ?547次閱讀

    詳解寄存器模型鏡像

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

    FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區別?

    邏輯工程師和 FPGA 原型驗證工程師在工作重點和職責上存在一定的區別: FPGA 算法工程師: 主要關注算法的設計和優化,以在 FPGA 平臺上實現高效的計算和處理。他們需要深入理解
    發表于 09-23 18:26

    ARM處理寄存器組織及功能

    ARM處理寄存器組織是其核心架構的重要組成部分,對于理解ARM處理的運行機制和性能特點具有重要意義。以下是對ARM處理
    的頭像 發表于 09-10 11:11 ?1074次閱讀

    數字寄存器的原理和使用

    數字寄存器是計算機體系結構中至關重要的組成部分,其原理和使用對于理解計算機的工作原理和數據存儲方式具有重要意義。
    的頭像 發表于 09-05 14:08 ?424次閱讀

    寄存器是什么意思?寄存器是如何構成的?

    在計算機科學中,寄存器(Register)是一個高速存儲單元,它位于中央處理(CPU)內部,用于存儲計算機程序執行過程中所需要的數據、指令地址或狀態信息。寄存器是計算機體系結構中至關重要的組成部分,對計算機的運算速度和性能有著
    的頭像 發表于 08-02 18:23 ?3421次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構成的?

    寄存器尋址的實現方式

    在計算機體系結構中,寄存器尋址是一種常見的尋址方式,它允許程序直接訪問CPU內部的寄存器。寄存器尋址可以提高程序的執行效率,因為它避免了對內存的訪問。 寄存器尋址的基本概念
    的頭像 發表于 07-12 10:36 ?565次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機中用于存儲數據的高速存儲單元,它們是CPU內部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發表于 07-12 10:31 ?1146次閱讀

    AFE模擬前端寄存器讀取操作

    AFE模擬前端寄存器讀取操作是電子系統設計和調試中不可或缺的一環。寄存器作為AFE模擬前端中的重要組成部分,存儲著各種配置參數和狀態信息,通過讀取這些寄存器工程師可以了解AFE的工作
    的頭像 發表于 03-15 15:50 ?653次閱讀

    loop指令執行時,隱含的寄存器

    當執行loop指令時,隱含的寄存器是CX寄存器。CX寄存器是循環計數寄存器,它存儲了循環的迭代次數。 在匯編語言中,loop指令用于實現循
    的頭像 發表于 02-14 16:15 ?870次閱讀

    CPU的6個主要寄存器

    CPU寄存器是中央處理內的組成部分,是有限存貯容量的高速存貯部件。寄存器是CPU內部的元件,包括通用寄存器、專用寄存器和控制
    的頭像 發表于 02-03 15:15 ?3941次閱讀

    arm三個寄存器在gdb調試時的作用

    arm三個寄存器在gdb調試時作用? ARM是一種廣泛使用的微處理架構,它廣泛應用于移動設備、嵌入式系統和其他高性能計算設備。當我們在使用gdb(GNU調試)調試ARM程序時,了解和理解
    的頭像 發表于 01-31 10:44 ?897次閱讀

    個人對STM32 SysTick的總結(寄存器操作)

    一、概述:SysTick是一個簡單的遞減24位計數。如果你不需要再應用程序中嵌入操作系統,SysTick可以作為簡單的延時和產生周期性的中斷。狀態控制寄存器的第0位可以使能計數,當前
    的頭像 發表于 01-06 08:00 ?1759次閱讀
    個人對STM32 SysTick的總結(<b class='flag-5'>寄存器</b>操作)

    ADC轉換的時候OFFSET寄存器與FS寄存器怎么使用呢?

    您好, 我想問一下ADC轉換的時候這個OFFSET寄存器與FS寄存器怎么使用呢?比如說OFFSET的為0x80015b,這個
    發表于 12-15 06:28