查看: 100|回复: 0

[分享] MCU内部SRAM的ECC初始化竟可由ROM完成!

[复制链接]
  • TA的每日心情
    开心
    2020-12-18 12:56
  • 签到天数: 55 天

    [LV.5]常住居民I

    75

    主题

    225

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1632
    最后登录
    2024-4-26
    发表于 2024-3-28 11:06:16 | 显示全部楼层 |阅读模式
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是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 初始化使能状态:

    检验ROM做RAM ECC初始化工作

    检验ROM做RAM ECC初始化工作
    芯片保持 Serial Downloader 模式,挂上 JLink 读取内存,好家伙,内部 RAM 全部整齐划一地保持全 0 队形,不再是随机值了,看起来 ROM 很好地完成了 ECC 初始化工作。

    看起来 ROM 很好地完成了 ECC 初始化工作

    看起来 ROM 很好地完成了 ECC 初始化工作
    这时候尝试在 DTCM 里写入一些测试数据,然后做软件复位,再回读发现测试数据依然保持着,这说明 ROM 只在 POR 硬复位时做一次 RAM ECC 初始化,其后发生软复位导致 ROM 再执行时就会跳过 ECC 初始化。

    跳过 ECC 初始化

    跳过 ECC 初始化
    至此,i.MXRT1170内部RAM的ECC初始化工作可全部由ROM完成痞子衡便介绍完毕了,掌声在哪里~~~

    签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-27 21:03 , Processed in 0.124915 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表