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

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

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

3天內不再提示

MCU內部SRAM的ECC初始化竟可由ROM完成

痞子衡嵌入式 ? 來源:痞子衡嵌入式 ? 2024-01-04 15:39 ? 次閱讀

大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是i.MXRT1170內部RAM的ECC初始化工作可全部由ROM完成

痞子衡之前寫了三篇文章 《M7 FlexRAM ECC》、《M4 L-MEM ECC》、《MECC64》 分別介紹了 i.MXRT1170 片上 2MB RAM 的不同 ECC 控制器用法,尤其是第三篇文章最后介紹了當 MECC64 特性被激活之后,BootROM 雖然使能了 MECC1&2 但并沒有一步到位初始化相應的全部 RAM 區域(僅初始化了 48KB ROM RW 區),這給后續調試和應用開發帶來了一定隱患。

難道 BootROM “挑了事”就這么不負責任嗎?當然不是!我們需要主動讓 BootROM 負全責,今天痞子衡就聊一聊這個話題

一、RAM ECC初始化相關Fuse位

前面的文章講了 Fuse MECC_ENABLE bit 主要控制 MECC64 模塊是否被激活,但其實它還有另外一層關于 RAM ECC 初始化控制。痞子衡在此列出了如下跟 RAM ECC 初始化相關的全部 Fuse bit,其中最核心的是 ROM_ECC_PRELOAD_POR bit,這個 bit 決定是否在芯片 POR 上電時讓 ROM 去做額外的 RAM ECC 初始化工作。

Fuse 0x840[2]  - MECC_ENABLE bit,        是否開啟MECC模塊(默認0即不開啟)
                                          ROM做ECC初始化是否包括M7 FlexRAM OCRAM、M4 TCM、M4 OCRAM(默認0即不包含)

Fuse 0x840[15] - TCM_ECC_ENABLE bit,     ROM做ECC初始化是否包括M7 TCM(默認0即不包含)

Fuse 0x850[7]  - OCRAM1_DISABLE bit,     ROM做ECC初始化是否包括扣去ROM RW區之后的OCRAM1(默認0即包含)
Fuse 0x850[6]  - OCRAM2_DISABLE bit,     ROM做ECC初始化是否包括OCRAM2(默認0即包含)

Fuse 0x950[0]  - ROM_ECC_PRELOAD_POR bit,是否在POR時讓ROM去初始化RAM ECC(默認0即不做)

上述區域里關于 OCRAM1 ECC 初始化需要特別說一下,因為前 48KB 是 ROM RW 區,其在 ROM 剛執行就被初始化過了,這里 ROM_ECC_PRELOAD_POR bit 控制的初始化就不再重復操作 ROM RW 區了。因為如果包含這個區域,那就會破壞 ROM 程序的正常執行了。

二、檢驗ROM做RAM ECC初始化工作

為了檢驗 BootROM 是否很好地完成了 RAM ECC 初始化工作,痞子衡找了塊 RT1170 板卡使用 MCUBootUtility 工具將 Fuse 0x840、0x850、0x950 全部設成 RAM ECC 初始化使能狀態:

1bae0986-aad4-11ee-8b88-92fbcf53809c.png

芯片保持 Serial Downloader 模式,掛上 JLink 讀取內存,好家伙,內部 RAM 全部整齊劃一地保持全 0 隊形,不再是隨機值了,看起來 ROM 很好地完成了 ECC 初始化工作。

1bb7eff0-aad4-11ee-8b88-92fbcf53809c.png

這時候嘗試在 DTCM 里寫入一些測試數據,然后做軟件復位,再回讀發現測試數據依然保持著,這說明 ROM 只在 POR 硬復位時做一次 RAM ECC 初始化,其后發生軟復位導致 ROM 再執行時就會跳過 ECC 初始化。

1bbba212-aad4-11ee-8b88-92fbcf53809c.png

至此,i.MXRT1170內部RAM的ECC初始化工作可全部由ROM完成痞子衡便介紹完畢了,掌聲在哪里~~~

審核編輯:湯梓紅

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

    關注

    454

    文章

    50460

    瀏覽量

    421964
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17019

    瀏覽量

    350372
  • ROM
    ROM
    +關注

    關注

    4

    文章

    562

    瀏覽量

    85679
  • 初始化
    +關注

    關注

    0

    文章

    49

    瀏覽量

    11837

原文標題:MCU內部SRAM的ECC初始化竟可由ROM完成!

文章出處:【微信號:pzh_mcu,微信公眾號:痞子衡嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MCU重新上電后,如何進行ECC初始化?

    如題,在重新上電之后,需要讀取ram地址,讀取時進入異常,查閱資料后發現是由于重新上電,需要進行ECC初始化,請問這該如何進行
    發表于 03-19 07:53

    在modelsim中初始化ROM

    要在modelsim中初始化ROM,夏雨聞書上說的是用系統任務readmemb,可是我用了怎么就不能初始化呢,求大神指教!
    發表于 05-13 18:01

    關于ISE調用ROM IP核并初始化的問題?

    現在在做一個任意波形發生器的設計,先是用正弦波波形數據初始化rom,能夠顯示出正弦波,后來用鋸齒波的數據,再次初始化rom,仿真出來的波形還是正弦波。不知道為什么???
    發表于 09-29 11:46

    FPGA片內ROM初始化文檔創建

    Xilinx FPGA入門連載44:FPGA片內ROM實例之ROM配置特權同學,版權所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1jGjAhEm 1 ROM
    發表于 04-08 09:34

    SRAM在芯片復位時不初始化的辦法

    如何保持SRAM的狀態,在芯片復位時不初始化
    發表于 11-27 07:14

    SRAM上的ECC是否默認啟用?哪些代碼使SRAM上的ECC啟用?

    將 u-boot 代碼復制到 SRAM。但我知道我必須在鏈接器中啟用 __RAM_INIT 標志才能初始化 ECC。如果不是,則在我將u-boot代碼復制到SRAM時出現異常。那是正常
    發表于 03-27 09:15

    是否沒有必要初始化SRAM_L因為它不受ECC保護?

    我注意到在S32K116的啟動文件中有一個ECC RAM initial。(startup_S32K116.S)我認為這與 AN12522 有關。我的問題,初始化似乎只應用了 SRAM_U。(0x2000_0000 到 0x20
    發表于 03-31 06:05

    S32K146 ECC初始化器,為什么不初始化堆棧空間?

    S32K146 ECC初始化器,為什么不初始化堆棧空間?
    發表于 04-20 12:55

    求助,MCU重新上電后如何進行ECC初始化?

    如題,在重新上電之后,需要讀取ram地址,讀取時進入異常,查閱資料后發現是由于重新上電,需要進行ECC初始化,請問這該如何進行?
    發表于 08-07 10:05

    FPGA的ROM初始化問題討論

    本文討論FPGA的ROM初始化問題,詳細介紹mit文件的創建與使用。利用FPGA實現的ROM只能認為器件處于用戶狀態時具備ROM功能。使用時不必要刻意劃分,而
    發表于 02-08 14:24 ?5472次閱讀
    FPGA的<b class='flag-5'>ROM</b><b class='flag-5'>初始化</b>問題討論

    四種常見的ROM、RAM初始化文件格式

    Xilin ROM初始化文件,ISE初始化ROM的時候要用擴展名為coe的文件。其格式如下: MEMORY_INITIALIZATION_TADIX=2; //2表示數據是二進制格式
    的頭像 發表于 06-29 09:08 ?1.2w次閱讀

    如何使用FPGA內部ROM以及程序對該ROM的數據讀操作

    FPGA本身是SRAM架構的,斷電之后,程序就消失,那么如何利用FPGA實現一個ROM呢,我們可以利用FPGA內部的RAM資源實現ROM,但不是真正意義上的
    的頭像 發表于 02-08 16:30 ?1.1w次閱讀
    如何使用FPGA<b class='flag-5'>內部</b>的<b class='flag-5'>ROM</b>以及程序對該<b class='flag-5'>ROM</b>的數據讀操作

    根據MATLAB中的偽隨機交織器產生的交織圖案初始化ROM的實驗

    根據MATLAB中的偽隨機交織器產生的交織圖案初始化ROM的實驗(嵌入式開發工程師報名)-根據MATLAB中的偽隨機交織器產生的交織圖案初始化ROM
    發表于 07-30 16:19 ?13次下載
    根據MATLAB中的偽隨機交織器產生的交織圖案<b class='flag-5'>初始化</b>到<b class='flag-5'>ROM</b>的實驗

    MCU初始化流程——從上電到main()之間

    堆棧(SP)生長方向為 遞減; 小端模式 Cortex-M0內核正文:一、MCU上電后,硬件設計保證,自動從地址0x00開始取數據 初始化文件中代碼設置 如下: 第一個數據用于初...
    發表于 10-28 17:05 ?4次下載
    <b class='flag-5'>MCU</b><b class='flag-5'>初始化</b>流程——從上電到main()之間

    MCU單片機GPIO初始化該按什么順序配置?為什么初始化時有電平跳變?

    GPIO初始化時有時鐘配置、模式配置、輸出配置、復用配置,那么在編寫初始化代碼時,到底該按什么順序執行呢?如果順序不當那初始化過程可能會出現短暫的電平跳變。
    的頭像 發表于 02-22 11:07 ?1434次閱讀
    <b class='flag-5'>MCU</b>單片機GPIO<b class='flag-5'>初始化</b>該按什么順序配置?為什么<b class='flag-5'>初始化</b>時有電平跳變?