痞子衡嵌入式:恩智浦i.MX RT1180系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MX RT118x系列MCU的Boot配置。
痞子衡旧文 《RT四位数Boot简介》 里为大家介绍了 Boot 基本原理以及 i.MXRT1xxx Boot 方式,此外也有文章 《RT1xxx Boot配置》 介绍了 i.MXRT10xx/RT1170 Boot 的行为配置,鉴于 RT1180 系列在 Boot 配置上区别于以往,因此今天痞子衡就来专门聊一聊 i.MXRT118x Boot 行为配置的设计差异。
无论是什么芯片里的 BootROM,其最核心的功能无非两个:一、从存放 Application 的存储器中加载执行;二、通过支持的通信接口接收来自 Host 的 Application 数据完成更新,所以 Boot 配置也主要围绕这两个核心功能。
一、Boot行为模式选择
如果你读过痞子衡旧文 《RT三位数Boot配置》,你会发现其实 RT1180 在 Boot 配置设计上更偏向于 RT 三位数系列(相对精简),但是在涉及到的名词术语上还是尽量与 RT 四位数保持了一致。
RT1180 内部 eFuse memory 中的 FORCE_BT_FROM_FUSE 位和芯片外部管脚 BOOT_MODE[2:0] 状态共同决定了 i.MXRT118x Boot 行为的最顶层配置。
1.1 行为模式定义
1.1.1 FORCE_BT_FROM_FUSE等值定义
FORCE_BT_FROM_FUSE 是最高优先级的行为模式定义,其与 BOOT_MODE_FROM_FUSE[2:0] 位是一个组合。当 FORCE_BT_FROM_FUSE 被烧写为 1'b1 时,此时芯片 Boot 行为完全由 BOOT_MODE_FROM_FUSE[2:0] 配置值决定。
1.1.2 BOOT_MODE[2:0]管脚状态定义
当 FORCE_BT_FROM_FUSE bit 未烧写时(即1'b0),BOOT_MODE[2:0] 引脚开始决定行为模式。下表是 BOOT_MODE 相关 pinout 信息,可在参考手册的 External Signals and Pin Multiplexing 章节中找到。
BOOT_MODE[2:0] pin 状态是在 POR_B pin 上沿时被自动采样存储在芯片内部的寄存器 SRC->SBMR2[29:24] 中的,这些 bit 也叫 IPP_BOOT_MODE[5:0],BootROM 其实是根据 IPP_BOOT_MODE 的值来决定 Boot 行为的。
- Note: 如果改变了 BOOT_MODE[2:0] 引脚的输入状态而使用 ONOFF pin(RESET_B)去软复位,Boot 行为并不会改变,因为 IPP_BOOT_MODE 值并未改变)。
当 BOOT_MODE[2:0] 被设置成 3'b000 时即所谓 Boot From Fuses 模式,其有效性还受 BT_FUSE_SEL 位二级控制(默认 1'b0 则仍然是 Serial Downloader 模式,烧写成 1'b1 时才根据 BOOT_MODE_FROM_FUSE[2:0] 决定行为),当然痞子衡认为这里完全多此一举,纯粹是为了与 RT 四位数早期型号里 BootROM 相应代码逻辑作兼容。
1.2 行为模式分类
不管是 FORCE_BT_FROM_FUSE 位还是外部管脚 BOOT_MODE[2:0] 状态,他们决定的最终 Boot 行为模式是相似的,区别只是一个通过烧 eFuse 决定(一般用于量产阶段),另一个通过切换引脚状态决定(一般用于研发阶段)。Boot 行为模式看起来非常多,但概括而言总共就两大类:
1.2.1 Serial Downloader模式(UART/SPI/USB-HID)
Serial Downloader 模式顾名思义即串行下载模式,在这种模式下,BootROM 通过指定的 USB/UART/SPI 口来接收来自 Host(恩智浦提供了上位机工具 blhost.exe 或者 mfgtool 或者 MCUBootUtility)的 Application 数据,并将数据存储在 SRAM 中执行。
- Note: SPI 方式 SDP 虽然很早就被 RT 三位数系列 BootROM 支持,但是在 RT 四位数上首次支持是 RT1180。
这种模式其实就是从 SRAM 启动,但是如果用这种模式去 Boot Application 缺点很明显,每次上电都需要将 Application 重新下载进 SRAM,无法做到脱机自动 Boot,所以显然这种模式的主要目的并不是从 SRAM 启动 Application,那它到底有什么用?
其实 Serial Downloader 模式主要是用来从 SRAM 中启动 Flashloader,恩智浦官方提供了 Flashloader 程序,Flashloader 程序可以用来将你的 Application 下载进 i.MXRT118x 支持的所有外部非易失性存储器中,为后续从外部存储器启动做准备。除此以外 Serial Downloader 模式还可以用来查看 eFuse 值。
1.2.2 Device Boot模式(Serial NOR/Serial NAND/Raw NAND/SD/eMMC/Recovery LPSPI NOR)
Device Boot 模式就是直接从选定的外部非易失 Device 加载 Application 启动,这种模式才是 i.MXRT118x 最核心的模式,毕竟离线运行 Application 才是最重要的任务。Device Boot 又分为 Primary Boot(Serial NOR/Serial NAND/Raw NAND/SD/eMMC)和 Recovery Boot(LPSPI NOR),前者是主动启动设备,后者是备份启动设备。当主动启动设备中的 Application 失效时,芯片会从备份启动设备中再尝试去启动一次 Application,实现双重保障。
- Note: Recovery LPSPI NOR 启动在 RT 四位数早期型号上虽然也被支持,不过仅支持 1bit 模式,而在 RT1180 上可以同时支持 1/2/4bits 模式。
二、Boot Device具体配置
当 Boot 行为模式选定的是从某一类 Boot Device 启动,底下就是配置该 Device 具体属性了。假设我们选择了Serial NOR FLASH,但是 Serial NOR 只是一类 FLASH 的统称,市面上有非常多的 Serial NOR 芯片,每个芯片特性可能不完全一样,那么 BootROM 怎么知道这些不同的 Serial NOR 芯片的特性呢?还是通过 eFuse memory 来指定。
eFuse 是 i.MXRT118x 里一块特殊的存储区域,用于存放全部芯片配置信息,其中有一部分区域分配给 Boot。参考手册的 eFuse 相关章节中可见所有 bit 具体定义,这里痞子衡仅贴出一部分用于示例:
- Note: 在 RT 四位数早期型号 eFuse 里关于 Device 具体属性定义区域存在复用情况,而在 RT1180 上每一类 Device 都独享一片区域。
至此,恩智浦i.MX RT118x系列MCU的Boot配置痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园、CSDN、微信公众号、知乎、与非网、电子技术应用AET、电子星球、51CTO 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
痞子衡嵌入式:恩智浦i.MX RT1180系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)的更多相关文章
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(1)- Boot简介
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的BootROM功能简介. 截止目前为止i.MX RTxxx系列已公布的芯片仅有一款i.MXRT60 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(2)- Boot配置(ISP_Pin, OTP)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的Boot配置. 在上一篇文章 Boot简介 里痞子衡为大家介绍了Boot基本原理以及i.MXRTx ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(1)- KBOOT架构
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT架构. Bootloader是嵌入式MCU开发里很常见的一种专用的应用程序,在一个没有Boo ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(9)- KBOOT特性(IntegrityCheck)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT之完整性检测(Integrity Check)特性. Application完整性检测是非常 ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(2)- KBOOT形态(ROM/Bootloader/Flashloader)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT形态. 痞子衡在前一篇文章里简介了 KBOOT架构,我们知道KBOOT是一个完善的Bootl ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(3)- KBOOT配置(FOPT/BOOT Pin/BCA)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT配置. KBOOT是支持配置功能的,配置功能可分为两方面:一.芯片系统的启动配置:二.KBO ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(11)- KBOOT特性(ROM API)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT之ROM API特性. KBOOT的ROM API特性主要存在于ROM Bootloader ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(10)- KBOOT特性(可靠升级)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT之可靠升级(Reliable Update)特性. 所谓可靠升级机制,即在更新Applica ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(4)- OTP及其烧写方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的OTP. 在i.MXRTxxx启动系列第二篇文章 Boot配置(ISP Pin, OTP) 里痞子 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(13.A)- LPSPI NOR启动时间(RT1170)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 1bit SPI NOR恢复启动时间. 本篇是i.MXRT1170启动时间评测第三弹了,前两篇分别给大家评 ...
随机推荐
- Spring对JTA的支持
引言: Spring 通过AOP技术可以让我们在脱离EJB的情况下享受声明式事务的丰盛大餐. 通过配合使用ObjectWeb的JOTM开源项目,在不需要Java EE应用服务器的情况下,Spring也 ...
- 【漏洞分析】Vestra DAO 攻击事件:这个质押项目它取款不核销呀
背景信息 攻击交易:https://app.blocksec.com/explorer/tx/eth/0x9a1d02a7cb9fef11fcec2727b1f9e0b01bc6bcf5542f5b6 ...
- Winform在主窗体加载前弹出登录窗体
1:主窗体代码 点击查看代码 //实例化登录窗体 FrmLogin frmLogin = new FrmLogin(); //读取登录窗体的返回结果 DialogResult dialogResult ...
- Gitbook的docker安装配置
创建目录:/gitbook/gitbook 和 /gitbook/html /gitbook/gitbook目录下,touch新建README.md docker安装gitbook docker ru ...
- Mac中nginx的默认安装路径和启动方式
1.安装完以后,可以在终端输出的信息里看到一些配置路径: /usr/local/etc/nginx/nginx.conf (配置文件路径) /usr/local/var/www (服务器默认路径) / ...
- 跟着 8.6k Star 的开源数据库,搞 RAG!
过去 9 年里,HelloGitHub 月刊累计收录了 3000 多个开源项目.然而,随着项目数量的增加,不少用户反馈:"搜索功能不好用,找不到想要的项目!" 这让我意识到,仅仅收 ...
- Qt音视频开发22-音频播放QAudioOutput
一.前言 以前一直以为只有Qt5以后才有QAudioOutput播放音频,其实从Qt4.6开始就有,在Qt6中变成了QAudioSink,功能一样.用QAudioOutput播放音频pcm数据极其方便 ...
- Qt音视频开发21-通用硬解码
一.前言 硬件解码是图形芯片厂家提出的用GPU资源解码视频流的方案,与之相对的是软解,也就是传统的用CPU承担解码工作的方案:优点是效率高,功耗低.热功耗低,缺点是缺乏有力的支持(包括滤镜.字幕等), ...
- svtools prune具体算法
svtools具有不同的子命令以实现不同的功能,其中一个就是lmerge.根据其help信息(cluster and prune a BEDPE file by position based on a ...
- VSCode远程开发Linux内核驱动
受够了Vim的换台电脑就要倒腾N天配置的折磨,受够了Windows下Source Insight眼花的界面.这些软件虽然很多人在用,但是缺点也不少.然而Linux内核代码非常庞大,编译内核又需要在Li ...