首页 > 其他分享 >痞子衡嵌入式:原来i.MXRT1170内部RAM的ECC初始化工作可全部由ROM完成

痞子衡嵌入式:原来i.MXRT1170内部RAM的ECC初始化工作可全部由ROM完成

时间:2024-01-02 10:32:44浏览次数:37  
标签:初始化 ECC ROM MXRT1170 痞子 RAM bit


  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是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 初始化使能状态:

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

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

痞子衡嵌入式:原来i.MXRT1170内部RAM的ECC初始化工作可全部由ROM完成_初始化

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

欢迎订阅

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:原来i.MXRT1170内部RAM的ECC初始化工作可全部由ROM完成_嵌入式_02

  最后欢迎关注痞子衡个人微信公众号【痞子衡嵌入式】,一个专注嵌入式技术的公众号,跟着痞子衡一起玩转嵌入式。




标签:初始化,ECC,ROM,MXRT1170,痞子,RAM,bit
From: https://blog.51cto.com/henjay724/9063970

相关文章

  • 痞子衡嵌入式:简析i.MXRT1170 MECC64功能特点及其保护片内OCRAM1,2之道
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT1170MECC64功能特点及其保护片内OCRAM1,2之道。ECC是“ErrorCorrectingCode”的简写,ECC能够实现错误检查和纠正,含有ECC功能的内存一般称为ECC内存,使用了ECC内存的系统在稳定性和可靠性上得......
  • 07PCIE数据卡BRAM缓存中断采集
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!7.1概述在方案中,使用基于AXI4实现的FDMA来实现数据的缓存。通过切换缓存的地址,实现2帧以上缓存数据的读取。这种构架......
  • 09使用fdma读写axi-bram
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!1概述    FDMA是米联客基于AXI4总线协议定制的一个DMA控制器。有了这个IP我们可以统一实现用FPGA代码直接读写PL......
  • 03使用fdma读写axi-bram测试
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!3.1概述    FDMA是米联客基于AXI4总线协议定制的一个DMA控制器。有了这个IP我们可以统一实现用FPGA代码直接读写P......
  • 去除X-FRAME-OPTIONS响应头的Chrome插件
    为了创建一个Chrome插件来移除document请求中的X-Frame-Options,你可以按照以下步骤进行操作:创建一个新的文件夹作为插件项目的根目录。在根目录下创建一个名为manifest.json的文件,并添加必要的清单信息,例如:{"manifest_version":2,"name":"RemoveX-Frame-Options......
  • ASP.NET Core 6(.NET 6) Program.cs中使用读取appsettings.json配置文件
    ​ 在ASP.NETCore6(.NET6)中,可以使用Json格式的appsettings.json配置文件来配置应用程序,用于存储应用程序的配置信息,方便我们灵活的配置应用程序。本文主要介绍Program.cs中,使用读取appsettings.json配置文件的方法,以及相关的示例代码。1、通过配置实体类的方式1)配置实体......
  • 27 浅谈XILINX BRAM的基本使用
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述对于BRAM详细的说明在XILINX官方文档,pg058中有说明,我们这里仅对课程涉及的内容讲解。Xlinx系列FPGA......
  • 网络摄像头漏洞扫描工具 Ingram
    简介主要针对网络摄像头的漏洞扫描框架,目前已集成海康、大华、宇视、dlink等常见设备安装请在Linux或Mac系统使用,确保安装了3.8及以上版本的Python,尽量不要使用3.11,因为对许多包的兼容不是很好克隆该仓库:gitclonehttps://github.com/jorhelp/Ingram.git进入项目......
  • 18.多窗口处理与⽹页frame
    多窗口处理与⽹页frame:selenium⾥⾯如何处理多窗口场景❖多个窗口识别❖多个窗口之间切换selenium⾥⾯如何处理frame❖多个frame识别❖多个frame之间切换多窗口处理:点击某些链接,会重新打开⼀个窗口,对于这种情况,想在新页⾯上操作,就得先切换窗口了。......
  • 浅析RobotFramework工具的使用 | 京东物流技术团队
    1简介最近几年越来越多的公司都开始进行自动化测试的设计和布局了,自动化,顾名思义就是把以人为驱动的测试行为转化为机器执行的一种过程,并经常用于回归测试中,市面上也存在很多开源的自动化测试的工具和理论知识,今天我要说的是RobotFramework这个工具;我也是在偶然的机会中接触到......