加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 一、RAM ECC初始化相關(guān)Fuse位
    • 二、檢驗(yàn)ROM做RAM ECC初始化工作
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

MCU內(nèi)部SRAM的ECC初始化竟可由ROM完成!

01/05 11:40
3775
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

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

難道 BootROM “挑了事”就這么不負(fù)責(zé)任嗎?當(dāng)然不是!我們需要主動(dòng)讓 BootROM 負(fù)全責(zé),今天痞子衡就聊一聊這個(gè)話題:

一、RAM ECC初始化相關(guān)Fuse位

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

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

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

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

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

上述區(qū)域里關(guān)于 OCRAM1 ECC 初始化需要特別說一下,因?yàn)榍?48KB 是 ROM RW 區(qū),其在 ROM 剛執(zhí)行就被初始化過了,這里 ROM_ECC_PRELOAD_POR bit 控制的初始化就不再重復(fù)操作 ROM RW 區(qū)了。因?yàn)槿绻@個(gè)區(qū)域,那就會破壞 ROM 程序的正常執(zhí)行了。

二、檢驗(yàn)ROM做RAM ECC初始化工作

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

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

這時(shí)候嘗試在 DTCM 里寫入一些測試數(shù)據(jù),然后做軟件復(fù)位,再回讀發(fā)現(xiàn)測試數(shù)據(jù)依然保持著,這說明 ROM 只在 POR 硬復(fù)位時(shí)做一次 RAM ECC 初始化,其后發(fā)生軟復(fù)位導(dǎo)致 ROM 再執(zhí)行時(shí)就會跳過 ECC 初始化。

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
DSC1121CM1-050.0000 1 Microchip Technology Inc OSC MEMS 50.000MHZ CMOS SMD
$1.56 查看
S25FL512SAGBHIA10 1 Cypress Semiconductor Flash, 128MX4, PBGA24, FBGA-24

ECAD模型

下載ECAD模型
$8.07 查看
SN74AHC1G14DCKT 1 Texas Instruments Single 2-V to 5.5-V inverter with Schmitt-Trigger inputs 5-SC70 -40 to 125

ECAD模型

下載ECAD模型
$0.9 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

碩士畢業(yè)于蘇州大學(xué)電子信息學(xué)院,目前就職于恩智浦(NXP)半導(dǎo)體MCU系統(tǒng)部門,擔(dān)任嵌入式系統(tǒng)應(yīng)用工程師。痞子衡會定期分享嵌入式相關(guān)文章