2411990_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2411990_zh-CN

2411990_zh-CN

IMXRT1176 应用程序崩溃,之后 IMXRT 无法启动。

您好,

我正在使用 IMXRT1176 定制板,在应用程序和辅助引导加载程序开发过程中,我的应用程序崩溃了,之后我无法刷写我的应用程序。我尝试进入串口下载器模式,然后擦除FLEXSPI NOR Flash,即使这样它仍然显示:


“Flash Driver V.2 启动失败 - rc Ef(55): 动态闪存驱动程序启动未能提供闪存参数。终止 (0x0, 0x0, 0x0) 状态 0x40 - 驱动程序报告初始化失败 - EXTSPIJ 驱动程序 rc 20107 (0x4E8B) 芯片初始化失败 - Ef(55): 动态闪存驱动程序启动无法提供闪存参数。初始化闪存驱动程序 MIMXRT1170_SFDP_QSPI.cfx##"


我尝试通过 USB 将 NXP 启动实用程序连接到 MCU,并看到了以下日志。

"--------MCU设备ROM信息--------
唯一 ID[31:00] = 0x8295ad77
唯一 ID[63:32] = 0x242cc80e
当前版本 = K3.0.1
目标版本 = T3.0.0
生命周期状态 = HAB 开放
--------MCU Flashloader 信息-------
当前版本 = K2.8.0
目标版本 = T1.0.1
--------MCU 设备 eFusemap--------
(0x940) SYSBT_CFG0 = 0x0
(0x950) SYSBT_CFG1 = 0x0
(0x960) SYSBT_CFG2 = 0x8
BT_FUSE_SEL = 1'b0
当 BMOD[1:0] = 2'b00(从熔丝启动)且引导设备中没有应用程序时,MCU 直接进入串口下载器模式。
当 BMOD[1:0] = 2'b10(内部启动)时,MCU 将根据 BOOT_CFGx 引脚和熔丝 BOOT_CFGx 启动应用程序。
----------FlexRAM 存储器-----------
IOMUXC_GPR->GPR16 = --------
--------MCU设备ROM信息--------
唯一 ID[31:00] = 0x8295ad77
唯一 ID[63:32] = 0x242cc80e
当前版本 = K3.0.1
目标版本 = T3.0.0
生命周期状态 = HAB 开放
--------MCU Flashloader 信息-------
当前版本 = K2.8.0
目标版本 = T1.0.1
--------MCU 设备 eFusemap--------
(0x940) SYSBT_CFG0 = 0x0
(0x950) SYSBT_CFG1 = 0x0
(0x960) SYSBT_CFG2 = 0x8
BT_FUSE_SEL = 1'b0
当 BMOD[1:0] = 2'b00(从熔丝启动)且引导设备中没有应用程序时,MCU 直接进入串口下载器模式。
当 BMOD[1:0] = 2'b10(内部启动)时,MCU 将根据 BOOT_CFGx 引脚和熔丝 BOOT_CFGx 启动应用程序。
----------FlexRAM 存储器-----------
IOMUXC_GPR->GPR16 = --------
--------MCU设备ROM信息--------
唯一 ID[31:00] = 0x8295ad77
唯一 ID[63:32] = 0x242cc80e
当前版本 = K3.0.1
目标版本 = T3.0.0
生命周期状态 = HAB 开放
--------MCU Flashloader 信息-------
当前版本 = K2.8.0
目标版本 = T1.0.1
--------MCU 设备 eFusemap--------
(0x940) SYSBT_CFG0 = 0x0
(0x950) SYSBT_CFG1 = 0x0
(0x960) SYSBT_CFG2 = 0x8
BT_FUSE_SEL = 1'b0
当 BMOD[1:0] = 2'b00(从熔丝启动)且引导设备中没有应用程序时,MCU 直接进入串口下载器模式。
当 BMOD[1:0] = 2'b10(内部启动)时,MCU 将根据 BOOT_CFGx 引脚和熔丝 BOOT_CFGx 启动应用程序。
----------FlexRAM 存储器-----------
IOMUXC_GPR->GPR16 = --------
--------MCU设备ROM信息--------
唯一 ID[31:00] = 0x8295ad77
唯一 ID[63:32] = 0x242cc80e
当前版本 = K3.0.1
目标版本 = T3.0.0
生命周期状态 = HAB 开放
--------MCU Flashloader 信息-------
当前版本 = K2.8.0
目标版本 = T1.0.1
--------MCU 设备 eFusemap--------
(0x940) SYSBT_CFG0 = 0x0
(0x950) SYSBT_CFG1 = 0x0
(0x960) SYSBT_CFG2 = 0x8
BT_FUSE_SEL = 1'b0
当 BMOD[1:0] = 2'b00(从熔丝启动)且引导设备中没有应用程序时,MCU 直接进入串口下载器模式。
当 BMOD[1:0] = 2'b10(内部启动)时,MCU 将根据 BOOT_CFGx 引脚和熔丝 BOOT_CFGx 启动应用程序。
----------FlexRAM 存储器-----------
IOMUXC_GPR->GPR16 = --------"


它显示“MCU 已进入 Flash 加载器,但配置外部存储器失败,请 RESET 板并设置正确的引导设备,然后重试”。


我的 或非 Flash 是 W25Q32JV 四通道SPI。

请您在这件事上帮帮我。


谢谢!

纳根德拉


Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

嗨@Gavin_Jia ,

感谢您的回复。

1.我从内存运行示例,得到的 ID 为 0。

2. Flash 连接到 FlexSPI A

FlexSPI1 信号 RT1176 球/焊盘名称

FLEXSPI1_A_SCLKGPIO_SD_B2_07
FLEXSPI1_A_DATA0GPIO_SD_B2_08
FLEXSPI1_A_DATA1GPIO_SD_B2_09
FLEXSPI1_A_DATA2GPIO_SD_B2_10
FLEXSPI1_A_DATA3GPIO_SD_B2_11
FLEXSPI1_A_SS0_BGPIO_SD_B1_06

这块板之前可以正常用于我们的应用程序,我曾用它按照 FlexSPI 示例程序,通过擦除和重新编程闪存,为我们的应用程序实现辅助引导加载程序。但在此期间,应用程序卡住了,从那以后我就无法再刷写闪存了。


Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

你好@Nagendra_Kumar ,

日志显示 MCU、ROM 和 Flashloader 都正常(HAB 打开,串行下载器连接)。故障发生在 FlexSPI 到 W25Q32JV 的初始化过程中:工具甚至无法读取 SFDP 参数,因此这是板/配置问题,而不是烧录工具的问题。由于新刷机也失败了,请按以下顺序检查:

  1. 首先从内部 RAM 运行flexspi_nor_polling_transfer_cm7示例,并读取 W25Q32JV 的 JEDEC ID。如果无法读取 ID,则确认存在硬件/引脚问题——暂时不要关注刷机工具。
  2. 确认闪存位于哪个 FlexSPI 实例/引脚组上。默认的 .cfx 文件MCUBootUtility 假定 FlexSPI1 端口 A(EVK 接线)。如果您的 FlexSPI2 或 FlexSPI1 是辅助接口,请修改 option0 中的引脚组字段,并烧录 FLEXSPI_PIN_GROUP_SEL 熔丝(地址 0x9A0[10]);在 MCUBootUtility 中显式选择匹配的实例。
  3. 建议使用安全配置工具 (SPT) ,它内置了 W25Q 系列的 FCB 模板和启动内存配置功能,以便首先验证设置。

另外,请确认:这块板之前是否曾通过W25Q32JV成功编程和启动过?

此致,
加文

Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

您好,

我忘了说,我还把 或非 闪存换成了新的。错误依然存在。

Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

你好@Nagendra_Kumar ,

谢谢你的更新!

我发现表格显示:

FLEXSPI1_A_SS0_B GPIO_SD_B1_06

应该是 GPIO_SD_B2_06。这是笔误还是实际连接状态?RAM 代码返回的 JEDEC ID 为 0,表明闪存硬件完全没有响应。因此,如果您的连接正确,则应检查硬件连接和电源,并使用示波器检查波形。

此致,
加文



Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

嗨@Gavin_Jia ,

FLEXSPI1_A_SS0_BGPIO_SD_B1_06

GPIO_SD_B1_06 是拼写错误。对此我深感抱歉。实际上它只连接到GPIO_SD_B2_06 。我用示波器检查了表格中的 FLEXSPI 引脚,发现这些引脚上没有任何活动。

此外,当我从 RAM 运行您提到的示例时,SS0_B 信号始终为低电平。我有多个相同类型的板,但在正常工作的板上,我得到的 ID 却是 0xEF。这个问题具体出现在我测试辅助引导加载程序实现的一块电路板上,当时电路板死机了。我不明白软件/应用程序崩溃怎么会导致这种行为,我也不知道是否应该用其他开发板来测试该软件。很遗憾,我无法提供我编写的代码。为了让您有个概念,我使用 SDK 中的 FreeRTOS 示例编写了我的应用程序,并构建了我的应用程序,然后使用 flexspi 轮询示例来实现辅助引导加载程序!我使用了 2 个 LPSPI(采用 DMA)、2 个 UART(采用 DMA)和 2 个 CAN。这是一个小型应用程序。我使用的是SDK版本2.8.1。

期待您的回复。

纳根德拉·库马尔。



Tags (1)
No ratings
Version history
Last update:
3 weeks ago
Updated by: