痞子衡嵌入式:揭秘i.MXRT1170上用J-Link连接复位后PC总是停在0x223104的原因

解决NXP i.MX RT1052 Jlink下载算法问题 解决NXP i.MX RT1052 Jlink下载算法问题 链接长方形圆圆角长方形菱形 Created with Raphaël 2.2.0开始我的操作确认?结束yesno 阅读详情

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1170上安全调试策略实现对JLink调试的影响。

  痞子衡之前写过一篇旧文 《i.MXRT600的ISP模式下用J-Link连接后PC总是停在0x1c04a》,这篇文章详细解释了 Debug Mailbox 机制对 J-Link 调试体验的影响。我们知道 Debug Mailbox 是 i.MXRT 三位数系列(i.MXRT500/600)独有的外设模块,但是在 i.MXRT1170 上使用 J-Link 调试似乎存在跟 i.MXRT 三位数系列下类似的体验,这个体验明显跟 i.MXRT10xx 系列下不同,而且 i.MXRT1170 中没有 Debug Mailbox 模块,这是怎么回事?且听痞子衡细聊:

一、引出调试问题

  按照我们之前在 i.MXRT1050 上的调试经验,将芯片设为串行下载模式后,使用 JLink 连接上芯片,并 halt 住内核,此时芯片 PC 是正常停在 ROM 区域的(不断 go 和 halt 命令交替执行,PC 值是一直在变化的),让我们同样的过程在 i.MXRT1170 上也操作一次:

  我们发现 PC 固定指向了 0x223104,并且不管你如何 reset 再重新 halt,它一直停在这个地方,这是怎么回事?

二、ROM中调试安全策略实现

  不同于 i.MXRT 三位数系列中有专门寄存器 RSTCTRL0->SYSRSTSTAT[5] 记录内核软复位状态(warm reset)以便 BootROM 初始化阶段根据此状态来进入 Debug Mailbox 安全调试流程,在 i.MXRT1170 上是一种全新的方式,BootROM 利用了一个未开放的调试中断(中断号 52),该调试中断被使能后,当调试口接收到调试请求时,该中断便会被触发。

  i.MXRT1170 BootROM 初始化阶段会立即使能这个 Reserved68_IRQn 中断,并且用一个全局变量(is_debug_pending)记录该中断触发状态。在 BootROM 执行过程中,一旦调试中断触发,在其中断响应函数里会将 is_debug_pending 置起来,并且立刻关闭 Reserved68_IRQn 中断(不需要二次响应),然后 BootROM 两个主阶段( Serial Downloader 和 Device Boot)流程里都会有对 is_debug_pending 状态的处理,只要 is_debug_pending 被置起来,BootROM 就会立即结束正常主流程,转而做一些安全化的处理(HAB状态清理、恢复时钟/外设、中断相关状态善后),最后便进入如下 debug_loop_routine() 函数,__ASM("B .") 指令地址就在 0x223104,这就是 i.MXRT1170 上的调试安全设计,其实是一种简化的 Debug Mailbox 机制。

#define LPSR_GPR41 (*(volatile uint32_t *)0x40c0c0a4)

void debug_loop_routine(void)
{
    while (!(LPSR_GPR41 & (1ul << 24)));
    register uint32_t dummy = OCOTP->VERSION;

#if (defined(__ICCARM__))
    __ASM("B .");
#endif
}

三、安全策略对JLink调试的影响

  基于上面分析,最后痞子衡再总结一下这个安全策略对 JLink 调试的影响:

  1. 当芯片在ROM中执行(比如SDP模式,比如Flash中没有应用程序)时,用JLink连接芯片,halt住内核,PC总是停在0x223104,这是安全调试策略决定的。
  2. 当芯片正常启动Flash里的应用程序后(即离开了ROM),用JLink连接芯片,halt住内核,PC指向的是真实的应用程序位置。
  3. 当JLink连接上芯片后,只要执行reset命令,都会直接进入安全调试模式(PC停在0x223104)。

  至此,i.MXRT1170上安全调试策略实现对JLink调试的影响痞子衡便介绍完毕了,掌声在哪里~~~

欢迎订阅

文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。

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

i.MXRT1170上使用J-Link连接复位后,PC总是停在0x223104的原因及操作系统 然而,有时候在使用J-Link连接并复位i.MXRT1170时,PC寄存器的值会停留在0x223104,导致系统无法正常启动。当使用J-Link连接并复位i.MXRT1170时,PC寄存器停在0x223104可能是由于启动地址设置错误、调试引导加载器的干扰或外部设备的干扰所致。当使用J-Link连接并复位i.MXRT1170时,PC寄存器的值应该被重置为启动地址,以便系统能够正确启动。然而,当PC寄存器停在0x223104时,意味着复位后的启动地址设置不正确,导致系统无法正常启动。 阅读详情

相关推荐

J-Link调试器故障排除与修复指南

J-Link是 SEGGER 公司推出的一款功能强大、操作便捷的调试器,广泛应用于嵌入式系统的开发和调试。它支持多种通信接口,如 JTAG、SWD 等,能够与各种主流微控制器(MCU)进行通信。J-Link 的高兼容性和稳定性,使其成为了 IT 行业和相关行业中许多开发者的首选。J-Link提供了一系列的工具用于故障排查,例如J-Link命令行工具(JLinkExe),它可以用来进行低级别的通信测试和固件更新;

weixin_42263617的博客 2079

关于若干jlink几个问题的解决

这里使用天嵌的TQ2440开发板子。 一、跳线选择nor启动,连接jlink后,出现如下打印:Could not find supported cpu core on JTAG chain,TDO一直为高的提示,jlink不能正常工作。 问题引入:        在烧录了自己裁剪的uboot到norflash后,连接jlink出现如下打印:Could not find supported c

zfaquir的专栏 4078

点云特征提取的实战对比:Voxel-based 与 Pillar-based 在自动驾驶中的表现

本文深入对比了自动驾驶中点云特征提取的两种主流方法:Voxel-based与Pillar-based。Voxel-based方法通过三维体素化保留完整几何信息,检测精度高,但计算消耗大;Pillar-based方法将点云压缩为二维柱状特征图,牺牲部分垂直细节以换取极高的处理速度,更适合实时性要求高的量产场景。文章结合实战数据,为不同算力、精度与工程需求的场景提供了清晰的选型指南。

weixin_29045001的博客 218

基于RT1176开发调试问题汇总

当平时在使用同一种资源时,比如LPSPI,初始化过程会使用接口LPSPI_MasterGetDefaultConfig去获取基本参数值,如果假设你的传输协议是MSB,切记不可在函数LPSPI_MasterGetDefaultConfig中直接修改,应该在获取这些基本参数后,再次在自己的驱动文件中修改,避免如果你同时使用LPSPI1和LPSPI5时你修改的是LPSPI_MasterGetDefaultConfig而导致传输协议不一样。

weixin_43947512的博客 743

Cox构建预测模型(5):如何用R语言绘制校准曲线(附全套代码)

这篇文献通过绘制两个模型的DCA曲线来评估模型的临床决策实际需求,一个是列线图模型,包括纳入列线图的全部变量,一个是TNM模型,只纳入TNM分期3个变量。A图是训练集1年、3年、5年患者的总生存期的DCA曲线;B图是训练集1年、3年、5年患者的总生存期的DCA曲线,红色线条代表列线图模型(包括构建模型的10个变量),黄色线条代表TNM模型(仅纳入TNM分期3个变量),两个模型对比,在绘制校准图之前,必须要完成数据的导入、拆分数据集的工作、预测因子的筛选,校准图的绘制是分别在训练集与验证集独立进行的。

qq_37610365的博客 1354

【实战解析】RTL8306MB交换芯片驱动开发中的RMII接口调试陷阱

本文深入剖析了RTL8306MB交换芯片驱动开发中RMII接口的典型调试陷阱。通过一个工业网关项目的实战案例,揭示了因硬件原理图设计疏忽导致TX_EN与CRS_DV信号线错接,从而引发网络“哑火”的根本原因。文章详细展示了使用示波器从时钟、数据到控制信号的系统性排查方法,并总结了关键的设计警示与自查清单,为嵌入式网络开发中的软硬件协同调试提供了宝贵经验。

qqq44的博客 1021

JLINK SWD 复位脚

在使用芯海cs32l010单片机时,qfn20封装,swd下载口复用了串口1功能,程序下载一次后,jlink无法识别单片机,也下载不了程序。查找资料可以通过jlink的复位脚控制识别单片机,电路板竟然没有把复位脚引出到接口上,于是飞线到接口。接着复位脚连接了淘宝买的ARM仿真器(Jlink)的NTRST,还是没法识别,怀疑了…而我接的其实是3脚的复位,所以没起作用,把线改到15脚,正常识别,正常下载程序。

ShaoMingya的博客 3844

Cadence Virtuoso VIVA波形分析:从背景色修改到线宽调整的完整指南

本文详细介绍了Cadence Virtuoso VIVA波形分析工具的核心使用技巧,包括背景色修改、线宽调整等高级功能。通过具体操作步骤和配置方法,帮助工程师优化波形显示效果,提升工作效率。特别强调了与Calculator组件的配合使用,以及专业波形图的输出技巧。

weixin_27330481的博客 616

痞子衡嵌入式:串行NOR Flash的Continuous read模式下软复位后i.MXRT无法启动问题解决方案之SW Reset...

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT上使能NOR Flash的Continuous read模式在软复位后无法正常启动问题的解决经验。   先回顾上篇 《串行NOR Flash的Continuous read模式下软复位后i.MXRT无法启动问题解决方案之RESET#》,利用RESET#引脚复位功能是痞子衡找到的第一种解决方案,今天痞子衡继续给大家介...

痞子衡嵌入式 543

USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法

事情起源于昨天拿到USRP后开始调试,结果整了一个下午都没解决这个问题。 昨天晚上自己思考了一下,觉得还是版本问题。 首先,uhd_find_devices和uhd_usrp_probe均可以正常运行,没有报错,固件正常加载,序列号也可看到。 teray@teray-X550JK:~$ uhd_find_devices [INFO] [UHD] linux; GNU C++ version 7.5...

斯哈研究所 4237

CrackerXI+脱壳实战:解决iOS应用逆向中的加密文件问题

本文详细介绍了如何使用CrackerXI+工具对iOS应用进行脱壳,解决App Store应用因FairPlay DRM加密而无法进行静态分析的难题。通过图形化界面一键操作,CrackerXI+能高效获取解密后的可执行文件,为逆向工程奠定基础。文章涵盖工具选型、实战步骤及常见问题排查,是iOS逆向入门与进阶的实用指南。

seed的博客 255

痞子衡嵌入式:不同J-Link版本对于i.MXRT1170连接复位后处理行为有所不同

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是不同J-Link版本对于i.MXRT1170连接复位后处理行为。   痞子衡之前写过一篇旧文 《i.MXRT1170上用J-Link连接复位后PC总是停在0x223104的原因》,这篇文章详细解释了 RT1170 BootROM 代码里软件实现的 Debug Mailbox 机制对 J-Link 调试体验的影响,文末还给了结论...

痞子衡嵌入式 882

网规第三版:第4章网络资源设备(完结)

第 4 章 网络资源设备 调整内容: 更新主流网络设备(交换机、路由器、防火墙)的技术参数与选型标准 增加国产化网络设备与信创产品的相关内容 精简已淘汰的设备类型与技术指标

鹿鸣天涯 259

I.MX RT1170:如何在SRAM/SDRAM运行程序

如果程序链接到SDRAM中,我们还需要在镜像头中填充DCD字段,这样BootROM会通过DCD来初始化SDRAM,然后将程序从Flash拷贝到SDRAM中执行。BootROM是上电后一定会运行的BootLoader,而在这期间可能会使能一些中断、外设,然后在跳出的时候恢复最早的没有初始化的状态。对于DAP来说,需要修改这两个地方,一个是指定连接的时候运行我们的初始化SDRAM的脚本,一个是增加。到现在,对于方案②来说,如果你的程序链接在系统的SRAM中,就可以直接点调试开始运行程序了。

主要分享嵌入式软件、人工智能部分知识 2249

6、深入解析Microsoft 365核心服务对比与迁移策略

本文深入解析了Microsoft 365的核心服务,包括身份和设备管理、现代设备配置体验、Exchange和SharePoint的迁移策略以及Microsoft Teams的协作功能。同时探讨了迁移过程中需要考虑的安全控制措施,为组织规划和实施云迁移项目提供了全面的指导和建议。

k8s6orchestrator的博客 99

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

J-Link不能连接目标MCU几点常见原因

关注+星标公众号,不错过精彩内容作者 |strongerHuang微信公众号 |strongerHuangJ-Link是嵌入式软件最常用的工具之一,但是,在使用这个工具时,也会遇到各种各样的问题。分享正文之前,给大家推荐一些嵌入式相关的职位:J-Link的连接使用J-Link,首先第一步硬件连接,确认J-Link和PC机之间是否连接正常,并确认上位机能和 J-Link 建立正确的通信。1.通过...

strongerHuang 3013

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ARM调试(3):在keil中不复位调试MCU

在keil中不复位调试MCU 文章目录在keil中不复位调试MCU1. 测试环境2. 不可复现的Dubeg最致命3. 步骤3.1 程序编译和下载3.2 添加启动加载程序3.3 keil的debug配置4. 调试的原理5. 补充:和ITM完美配合5.1 修改ini文件5.2 启动调试 1. 测试环境 系统:win10 IDE:keil5 开发板:GD32F450 调试器:J-LINK V10 2. 不可复现的Dubeg最致命 当单片机程序运行突然异常后,若是没有在仿真模式下,只能通过硬件的表面现象来分析,

Zhichao_Zhang的博客 9370

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

嵌入式实操----基于RT1170 首板硬件之WDT调试(二十)

本文主要是通过迁移的思维,记录本人初次使用NXP MCUXpresso SDK API进行BSP开发 本文主要是描述整合看门狗(WDT)接口,供应用开发人员使用。 1. 首先阅读原理图 NA 2. 调试过程 2. 1 WDT初始化 /*----------------------------------------------* * macros * *-------------------------------------

良红 357

痞子衡嵌入式:了解i.MXRTxxx系列ROM中灵活的串行NOR Flash启动硬复位引脚选择

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRTxxx系列ROM中灵活的串行NOR Flash启动硬复位引脚选择。   关于 i.MXRT 系列 BootROM 中串行 NOR Flash 启动流程,痞子衡写过一篇非常详细的文章 《深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程》,这篇文章主要针对 i.MXRT1xxx 四位数系列,但基...

痞子衡嵌入式 927

痞子衡嵌入式:聊聊i.MXRT1170上串行NOR Flash双程序可交替启动设计

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1170上串行NOR Flash双程序可交替启动设计。   在上一篇文章 《i.MXRT1060/1010上串行NOR Flash冗余程序启动设计》 里,痞子衡详细介绍了 i.MXRT10xx 上的冗余程序启动设计,本质上这就是个双备份程序启动, NOR Flash 里存两份一样的 image,物理地址靠前的 im...

痞子衡嵌入式 1345

痞子衡嵌入式:大话双核i.MXRT1170之单独在线调试从核工程的方法(IAR篇)

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT1170下单独在线调试从核工程的方法(基于IAR)。   两年前痞子衡写过一篇《双核i.MXRT1170之Cortex-M7与Cortex-M4互相激活之道》,那篇文章从离线启动的角度介绍了跑双核应用的基本方法,基本上把双核启动的细节都介绍到了。   在应用开发的阶段,很多时候我们还是需要在线调试的,主核的调试没什...

痞子衡嵌入式 1610

使用JLink下载 RT1052 (i.MX RT系列芯片)

使用JLink下载 RT1052 (i.MX RT系列芯片) 前言 ​ 好久之前使用的jlink下载stm32的程序,后来就改用野火家的DAP了,因为JLink长的太大了带着是在不方便,所以一直使用着DAP下载器,但是越来越发现DAP的下载速度太慢了,如果使用MDK的话还是JLlink下载速度快,最近在使用RT1052时的一个工程,估计代码量有点大,对于DAP有点难为人了,哈哈哈。同样的一个程...

疯小疯的博客 5961

53

博客园Logo 首页 新闻 博问 专区 闪存 班级 代码改变世界 搜索 注册 登录 痞子衡嵌入式 定期分享程序设计、嵌入式开发、应用方案解析、嵌入式前沿热点新闻等相关文章 版权声明: 所有文章均为痞子衡原创,转载必须标明出处 博客园 首页 新随笔 联系 订阅 管理 随笔 - 199 文章 - 0 评论 - 329 痞子衡嵌入式:揭秘i.MXRT600的ISP模式下用J-Link连接后PC总是停在0x1c04a的原因(Debug Mailbox) 大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介

wubaoyu123的博客 1120

Jlink v7使用

xingzhang7836的专栏 1662

J-link使用小技巧

JLINK commander的使用小技巧,一些固件反读、指令调试等小技巧都有展示

sinat_42834276的博客 4083

I.MX RT1176笔记(4)-- 双核调试

关于多核调试,笔者在rt1176(m7+m4)上算走了一段弯路,这里把一些问题分享给大家。

weixin_38426553的博客 4881
上一篇: 《痞子衡嵌入式半月刊》 第 46 期
下一篇: 痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(1) - 开发环境搭建与点灯...
痞子衡
痞子衡 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄14年 2590粉丝 532原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

痞子衡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值