news 2026/6/10 14:49:16

痞子衡嵌入式:如果i.MXRT1xxx在Hab关闭时出现偶发性启动失败,请先检查JTAG电路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
痞子衡嵌入式:如果i.MXRT1xxx在Hab关闭时出现偶发性启动失败,请先检查JTAG电路

来聊一下这个话题:

Note1: 本文适用全部的 RT10xx 和 RT1160/1170,但不一定适用 RT1180。

Note2: RT10xx (HAB v4.3) 和 RT1160/1170(HAB v4.5.5) 内部安全管理系统属于第一代 HAB。

Note3: RT1180 启用了全新安全管理系统架构 AHAB。

一、检查ROM启动日志

在分析问题前,先简单聊一下 HAB 设置,RT1064 HAB 一共三种状态(由 efuse 里的 SEC_CONFIG[1] 和 SEC_CONFIG[0] 位共同决定),其中 Closed 状态代表使能芯片严格安全检查机制。

2'b00 - FAB (Open)

2'b01 - Open (allows any code to be flashed and executed, even if it has no valid signature.)

2'b1x - Closed (Security On)

当客户启动失败问题发生的时候,我们可以通过《检查 ROM 启动日志》来初步确认问题范围,下面是从客户板子上获取到的 log 信息,从信息里看明明启动模式是 2'b10 - internal,但是它竟然直接就进入 SDP 模式了,这很异常,完全没有看到对于 boot device 的处理过程,这也进一步论证了问题和 Flash 无关。

.--------------------------------------------------------------------------------------------

| Log Entry | Description |

.--------------------------------------------------------------------------------------------

0x00010002: BOOTMODE_INTERNAL

0x000200cc: SEC_CONFIG_CLOSED

0x00030001: DIR_BT_DIS_VALUE1

0x00040001: BT_FUSE_SEL_VALUE1

0x000c0000: SDP_ENTRY

作为对比,我们看一下当启动模式是 2'b10 - internal 时(痞子衡用得是官方 EVK,并未烧写 HAB),但 Flash 为空导致启动失败情况的 log,这里我们能看到 PRIM_IMAGE_SELECT、PRIM_BOOTDEVICE_FLEXSPI_NOR 等信息,表明 ROM 有尝试获取 Flash 内容的动作,这才是正常的行为。

.--------------------------------------------------------------------------------------------

| Log Entry | Description |

.--------------------------------------------------------------------------------------------

0x00010002: BOOTMODE_INTERNAL

0x000200f0: SEC_CONFIG_OPEN

0x00030001: DIR_BT_DIS_VALUE1

0x00040000: BT_FUSE_SEL_VALUE0

0x00050000: PRIM_IMAGE_SELECT

0x00060008: PRIM_BOOTDEVICE_FLEXSPI_NOR

0x00070000: DEVICE_INIT_CALL

0x000700f0: DEVICE_INIT_PASS

0x00090000: AUTHENTICATION_STATUS

二、检查JTAG电路

由于 RT1064 芯片里的安全系统是个黑盒子,从文档里找不到注意事项。痞子衡和负责安全的专家聊了一下,专家认为这个问题是芯片内部 SNVS 硬件先于 ROM 执行前检测到了 JTAG 电路有异常导致误触发了 security event,比如 JTAG_TRSTB 或者 JTAG_TCK 等引脚上出现 glitch,从这个角度来解释,倒是能和万分之几的失败概率对得上。

痞子衡查看了一下 RT1050_1060 硬件设计指南里关于 JTAG 电路的设计注意事项,这里强调了当切换调试接口协议从默认 SWD 换到 JTAG 时,建议量产阶段给 JTAG_TRSTB 引脚加上 4.7K 欧姆的下拉。

于是我们便让客户检查 JTAG 电路设计,得知客户用得是默认 SWD 协议,且 GPIO_AD_B0_11(JTAG_TRSTB) 用于了一般应用功能,无外部上下拉电阻。这里需要注意,即使走得是 SWD 协议,复位期间 JTAG_TRSTB 等信号出现 glitch 仍然有可能触发安全隐患(仅在 HAB closed 状态下会导致问题)。GPIO_AD_B0_07(JTAG_TCK)也是处于悬空状态,最好给这些引脚加上外部下拉(仅靠芯片内部 100K 欧姆弱下拉不一定够),降低风险(后经客户工程师确认,TCK 加外部下拉方法有效)。

在硬件设计灵活性这一块,那还得看官方 EVK 设计,上下拉选项都预留了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 5:19:22

产品快讯 | Docusign 发布 IAL2 级身份验证,强化协议信任

借助集成式 IAL2 身份审核机制,让组织在防欺诈、提效率与控合规上同步升级。 在当今高度数字化的业务环境中,身份验证已不再是例行步骤,而是维系信任、合规与安全的核心支柱。无论是审批贷款、收集患者同意,还是处理任何高价值交易…

作者头像 李华
网站建设 2026/6/9 20:04:18

Java对接多头借贷行业风险版API:AES加解密与复杂结构体解析实战

一、构建精细化的信贷审批“流水线” 在银行核心信贷系统或消费金融的风控中台(Risk Decision Engine)构建中,单一的“黑名单”查询已无法满足差异化的客群经营需求。业务部门往往需要更细粒度的数据来支撑决策:比如,一…

作者头像 李华
网站建设 2026/6/10 11:42:27

Qdrant向量数据库:构建企业级AI应用的元数据治理新范式

Qdrant向量数据库:构建企业级AI应用的元数据治理新范式 【免费下载链接】qdrant Qdrant - 针对下一代人工智能的高性能、大规模向量数据库。同时提供云端版本 项目地址: https://gitcode.com/GitHub_Trending/qd/qdrant 在人工智能应用规模化部署的今天&…

作者头像 李华
网站建设 2026/6/10 11:40:20

MindSpore 技术干货:揭秘其核心利器——自动并行

在深度学习框架竞争日益激烈的今天,华为开源的 MindSpore 凭借其“全场景”的设计理念脱颖而出。在其众多特性中,自动并行 无疑是其最耀眼的技术亮点之一,它旨在显著降低大规模模型训练的复杂度,让开发者更专注于算法本身。什么是…

作者头像 李华
网站建设 2026/6/10 12:56:27

解锁昇腾算力:基于 MindSpore 的高效迁移学习与自动混合精度实战

1. 构建高性能数据管道数据加载往往是训练性能的瓶颈。MindSpore 的 mindspore.dataset模块底层基于 C 实现,提供了并行加载和数据增强能力。我们以加载自定义数据集为例:import mindspore.dataset as ds import mindspore.dataset.vision as vision imp…

作者头像 李华
网站建设 2026/6/10 4:03:32

小红的密码修改【牛客tracker 每日一题】

小红的密码修改 时间限制:1秒 空间限制:256M 网页链接 牛客tracker 牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每…

作者头像 李华