痞子衡嵌入式:恩智浦i.MX RT1180系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)

news/2025/2/7 16:55:12/文章来源:https://www.cnblogs.com/henjay724/p/18702889

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦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 平台上。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/880117.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三分钟让Dify接入Ollama部署的本地大模型!

1 运行 Ollama 与 qwen2:0.5b 聊天 ollama run qwen2:0.5b启动成功后,ollama 在本地 11434 端口启动了一个 API 服务,可通过 http://localhost:11434 访问。 2 Dify 中接入 Ollama 2.1 添加模型 在 设置 > 模型供应商 > Ollama 添加模型:填写 LLM 信息:模型名称:以 …

Ubuntu 一次成功安装 k8s集群

Ubuntu系统设置静态固定IP保姆级教程 修改主机名 sudo hostnamectl set-hostname k8s-master关闭防火墙 systemctl status ufw.service systemctl stop ufw.service systemctl disable ufw.serviceapt-get update安装docker apt install -y docker.iosudo mkdir -p /etc/docker…

高标准农田智慧管理系统

随着科技的飞速发展,智慧农业已成为推动农业现代化的重要力量。高标准农田智慧管理系统作为智慧农业的核心组成部分,正逐步改变着传统农业的生产方式。本文将深入探讨高标准农田智慧管理系统的建设内容,以期为我国农业的可持续发展提供新的思路和方向。一、高标准农田智慧管…

老年人评估系统web端

项目结构项目实现 用到了springboot mybatis框架 vue ajax axios element 成品效果自动刷新的信息查询点击注册跳转 跳转之后的注册页面点击返回可回到主页面点击删除按钮跳转的页面点击更正信息弹出的form表单 项目功能基本实现

【土地交易大揭秘】哪些用地必须走“招拍挂”之路?

今天咱们来聊聊一个在土地市场里热度颇高的话题——哪些用地必须通过招标、拍卖或者挂牌方式出让?这可是关乎城市建设和房地产开发的大事,对投资者和普通市民来说,了解这一点至关重要。下面,我们就来深入浅出地解读一番。招标、拍卖、挂牌出让简述首先,普及一下基本概念。…

python脚本与命令行交互sys.argv

前言在 Python 编程的世界里,sys.argv 是一个强大且实用的工具,它为我们开启了与命令行交互的大门,让程序能够接收外部传入的参数,从而实现更加灵活和多样化的功能。今天,就让我们深入探索 sys.argv 的奥秘。 “argv” 即 “argument value” 是一个列表对象,其中存储的是…

奶奶都能看懂的 CSS 选择器基础语法常用属性优先级

标题都是奶奶都能看懂了,那么我们肯定从最基础的开始讲。之所以这么自信是因为能踩的坑全帮你们踩过了…… 开始之前,先来首诗感受一下,具体啥意思你看完本文就懂了。 点类井号逗为或,类多号单连为且。 id 优先类在后,类型选择在末尾。 代码优先难解决,拿出鼠标数一数。 …

本地部署大模型体验小记

本地部署大模型的工具工具 优缺点LM Studio 图形界面友好,支持API访问,参数配置灵活Ollama GPU优化不足,CPU占用率高Chatbox 易出现输入卡顿,交互体验待优化Ollama 和 Chatbox 需要配合使用。 综合看更推荐使用 LM Studio 。 自定义模型 LM Studio 和 Ollama 除了使用默认的…

oi-math 重修

OI 数学重修 注: 很多东西没来得及写例题和代码,以后遇到会补上 想了一下虽然还有很多没写完,但是这两天要开数学了,决定后面的分成一个一个博客写然后在这挂链接,所以发出来了。 主题是看着 oi-wiki 写的,但细节上尤其是证明部分不太一样,毕竟也不是什么教学性质的,权…

方差、标准差、变异系数举例

一、标准差,也称均方差,是方差的算术平方根,标准差能反映一个数据集的离散程度。平均数相同的两组数据,标准差未必相同。太绕了,上例子:1、先找出平均数。平均数是数据的平均值,把数据加起来然后除以数据个数就可以得到。2、再找出方差。方差是数据偏离平均数的程度。得…