0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

试问谁家MCU能有三重启动保障?

痞子衡嵌入式 来源:痞子衡嵌入式 2023-05-19 11:03 次阅读

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1xxx上第三级启动保障 - SDMMC manufacture模式。

如果你在 i.MXRT1xxx 板卡上尝试过从 SD/eMMC 卡启动,你会发现一个奇怪的现象:如果把 SD/eMMC 卡还插着(并且里面保留正常的 App 程序),明明 BOOT_MODE[1:0] 设置得是从串行 NOR Flash 启动,但是在 Flash 中没有可启动 App 情况下,芯片没有像往常那样转入串行下载模式,而是正常启动了,并且启动得是 SD/eMMC 里的程序,这是怎么回事?今天痞子衡就跟大家介绍下导致这个现象背后的神秘力量 - SDMMC manufacture mode:

Note:SDMMC manufacture 模式仅在 i.MXRT 四位数上被支持。

一、回顾i.MXRT启动设备

i.MXRT 系列内部均没有非易失性存储器,所以需要配置一个外部存储器存放启动代码,这个外部存储器我们也叫做启动设备。i.MXRT 支持的启动设备类型非常多,并且因为启动设备受板级环境影响可能导致启动代码读取异常,i.MXRT 上还设计了多级启动保障,如下图所示:

e03d2ff6-f5ef-11ed-90ce-dac502259ad0.png

二、什么是SDMMC manufacture模式?

我们知道 i.MXRT1xxx 系列支持得一级启动设备有很多:串行NOR/NAND、并行NOR/NAND、SD/eMMC,当这些一级启动设备中的 App 未能正常启动时,为了保证系统仍能运行正常,其会自动进入备份启动方案(默认没开启,需要主动烧 eFuse 开启),即痞子衡旧文介绍过的 《从Serial(1-bit SPI) EEPROM/NOR恢复启动》。

如果这个备份启动方案仍然失败了怎么办?那就需要进入今天的主角,第三级也是最后一级启动方案 - SDMMC manufacture 方式启动(默认开启,可以烧 eFuse 关闭。对于 RT1050 系列,配置在 eFuse 0x470[3] - Disable SDMMC Manufacture mode),简单说就是 i.MXRT 会最后一次尝试从 SD/eMMC 中读取 App 去启动。需要注意的是这个 SDMMC manufacture 启动方式和作为 《一级启动设备 SD/eMMC 方式》 有如下区别:

一级启动设备 SD/eMMC 可以有很多用户配置(由 BT_CFG 引脚或者 eFuse 决定),但是 SDMMC manufacture 启动与用户配置完全无关,其固定从 uSDHC1 口以 1bit bus width,3.3V 模式去读取启动 App。

三、什么情况下进SDMMC manufacture模式?

在 i.MXRT 芯片参考手册 System Boot 章节可以找到如下流程图,图中介绍了两种进 SDMMC manufacture 模式的方法。

第一种方法就是在 BOOT_MODE[1:0]=2'b10 (或者 BOOT_MODE[1:0]=2'b00 且 BT_FUSE_SEL=1'b1)时,主启动设备以及备份启动设备(假设已使能)均失败的情况下自动进入,这种方法属于被动式进入,当然这也是该模式的主要用意。

第二种方法就是在 BOOT_MODE[1:0]=2'b00 且 BT_FUSE_SEL=1'b0 时,主动进入 SDMMC manufacture 模式,这有点将该模式升级成一级启动设备地位的感觉。

e049e4c6-f5ef-11ed-90ce-dac502259ad0.png

最后提一下,i.MXRT 上的 SDMMC manufacture 模式特性完全继承自 i.MX 系列,我们知道 MPU 世界里使用 SD 卡场景非常多,因此使能这个功能很自然,在 i.MXRT 上如果应用里也有 SD 卡相关设计,那么不妨也关注下这个特性,多一重保障。

至此,i.MXRT1xxx上第三级启动保障 - SDMMC manufacture模式痞子衡便介绍完毕了,掌声在哪里~~~

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47802

    浏览量

    409168
  • 串行
    +关注

    关注

    0

    文章

    230

    浏览量

    33533
  • 板卡
    +关注

    关注

    3

    文章

    75

    浏览量

    16453

原文标题:真的打满了!试问谁家MCU能有三重启动保障?

文章出处:【微信号:pzh_mcu,微信公众号:痞子衡嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    为 Windows XP 建立多重启动

    SP4以上的版本,接着在Windows NT操作系统中执行 Windows 2000 的安装程序,此后就能得到三重启动功能。当计算机中只有一个操作系统时,使用 NTFS 格式化硬盘可以增强系统功能;但在
    发表于 04-24 10:04

    CC2650无线连接三重概述

    `CC2650无线连接三重概述`
    发表于 02-25 10:13

    用于LCD背光的电路显示三重降压模式LED驱动器

    电路显示三重降压模式LED驱动器。每个通道为其LED驱动500mA电流。每根灯串可以有8到12个LED,具体取决于类型
    发表于 07-11 06:58

    为什么JTAG会发生多重启动

    要使用Spartan进行多重启动设置,你必须远离JTAG配置端口,事实上我通过JTAG读取器件状态寄存器时遇到了Spartan-3A。令人惊讶并阻止未来的配置发生变化,即使设置到目前为止一直运行良好。我
    发表于 07-26 13:29

    如何在a7 fpga中实现回退多重启动

    我正试图在a7 fpga中实现回退多重启动。以下是黄金图像的ise工具中的设置:当我完成将黄金图像位文件加载到fpga中时,完成的led可以点亮。但当我完成将黄金映像mcs文件加载到fpga中,并在
    发表于 06-01 06:17

    ML605支持多重启动吗?

    嗨我正在学习Virtex-6的多重启动功能。ML605支持多重启动?谢谢!handoujack。
    发表于 06-16 10:54

    如何利用Platform Flash PROM实现多重启动功能?

    如何利用Platform Flash PROM实现多重启动功能?
    发表于 04-29 06:24

    嵌入式MCU中标准的三重中断控制设计资料大合集

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是嵌入式MCU中标准的三重中断控制设计。  我们知道在 MCU 裸机中程序代码之所以能完成多任务并行实时处理功能,其实主要是靠中断来
    发表于 11-04 06:40

    STM32F407三重ADC配置过程是怎样的?

    STM32F407三重ADC配置过程是怎样的?
    发表于 11-23 07:15

    怎么实现嵌入式MCU中标准的三重中断控制设计?

    怎么实现嵌入式MCU中标准的三重中断控制设计?
    发表于 11-29 06:02

    如何双启动64位iOS设备

    现如今,在已经有了合适的 Linux 内核可以启动的条件下,相信我们很快就可以在 iOS 设备中看到 Linux 双启动支持。距离使用 iOS、Android 和 Ubuntu Touch 进行三重启动的 iPhone 也不再遥
    的头像 发表于 05-20 09:24 2400次阅读

    如何使用ICAP在Spartan-3AN FPGA内运行多重启动应用

    内运行多重启动应用的用例。 我们将在本篇博文中讲解此用例。 为何需要 ICAP? 对于非 ICAP 设计,使用“主 SPI 模式 (Master SPI Mode)”时,多重启动功能是无效的。 要启用
    的头像 发表于 06-25 17:25 1693次阅读

    使用ICAP在SPI模式下执行Spartan-3AN多重启动

    (UG332) 即为《Spartan-3 系列配置用户指南》。在此用户指南中,并未涵盖有关从 SPI 闪存启动时,如何使用内部配置访问端口 (ICAP) 来支持在 Spartan-3AN FPGA 内运行多重启动应用的用例。我们将在本篇博文中讲解此用例。
    发表于 08-02 14:38 500次阅读
    使用ICAP在SPI模式下执行Spartan-3AN多<b class='flag-5'>重启动</b>

    CPU低温重启问题的定位和解决

    某产品研发阶段在做四角实验的过程中,发现单板在低温下出现反复重启动的问题,经过反复的实验和定位,发现是核电源DC-DC芯片使用的液态电解电容,在低温下,内部液体固化。导致电容ESR降低,进而使DC-DC输出的纹波变大,出现单板反复重启动的问题。
    发表于 06-25 16:57 797次阅读
    CPU低温<b class='flag-5'>重启</b>问题的定位和解决

    如何实现stm32单片机每次接上电源就进行一次重启动

    如何实现stm32单片机每次接上电源就进行一次重启动? 在嵌入式系统中,单片机的重启有时是十分必要的,它可以解决一些系统启动过程中的问题、恢复系统的正常运行、使系统更加稳定等。 然而,有时候我们需要
    的头像 发表于 09-14 14:22 2616次阅读