This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM263P4-Q1:UNIFLASH:在 QSPI (1S)引导模式下、XDS11S 无法刷写

Guru**** 2465890 points
Other Parts Discussed in Thread: TMDSCNCD263P, UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1472201/am263p4-q1-uniflash-cannot-flash-by-xds11s-in-qspi-1s-boot-mode

器件型号:AM263P4-Q1
主题中讨论的其他器件:TMDSCNCD263PUNIFLASH

工具与软件:

您好!

我们的 TMDSCNCD263P 板将位于高压环境中的外壳中。 因此、我们无法轻松到达电路板并更改引导模式。

没错、此处的说明(AM263Px MCU+ SDK:TI Uniflash 工具)中提到了将器件置于 DevBoot 模式。 不过、在实践中、我已经能够使用板载 XDS110调试仿真器以 QSPI (1S)模式进行刷写几个月、直到最近为止、无论使用 DevBoot 的指令是什么。 因此、我从未担心需要更改引导模式开关。

我的问题是、现在由于某种原因、它现在失败了、如下所示:

[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: ***OnTargetConnect() Launched***
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: AM263Px Initialization Scripts Launched. Please Wait...
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: AM263Px_Cryst_Clock_Loss_Status() Launched
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Crystal Clock present
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: AM263Px_SOP_Mode() Launched
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: SOP MODE = 0x00000002
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: QSPI - 1S Functional boot mode
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: AM263Px_Read_Device_Type() Launched
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: EFuse Device Type Value = 0x000000AA
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: AM263Px_dual_or_lockstep_mode() Launched
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: r5fss0 = 0x00000101
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: r5fss1 = 0x00000000
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: R5FSS0 is in Lockstep mode
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: R5FSS1 is in Dual core mode
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: MSS_CTRL Control Registers Unlocked
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: MSS_TOP_RCM Control Registers Unlocked
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: MSS_RCM Control Registers Unlocked
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: MSS_IOMUX Control Registers Unlocked
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: TOP_CTRL Control Registers Unlocked
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: *** R5FSS0 Reset DualCore ***
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: ***R5FSS1 Reset DualCore ***
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: R5F ROM Eclipse
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: R5FSS0_0 Released
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: R5FSS0_1 Released
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: R5FSS1_0 Released
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: R5FSS1_1 Released
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: L2 Mem Init Complete
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: MailBox Mem Init Complete
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: *********** R5FSS0/1 Dual Core mode Configured********
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: SYS_CLK DIVBY2
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: DPLL_CORE_HSDIV0_CLKOUT0 selected as CLK source for R5FSS & SYS CLKs
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: CLK Programmed R5F=400MHz and SYS_CLK=200MHz
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: *** Enabling Peripheral Clocks ***
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling RTI[0:3] Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling RTI_WDT[0:3] Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling UART[0:5]/LIN[0:5] Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling QSPI Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling I2C Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling TRACE Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling MCAN[0:3] Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling MMCSD Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling MCSPI[0:4] Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling CONTROLSS Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling CPTS Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling RGMI[5,50,250] Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling XTAL_TEMPSENSE_32K Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: Enabling XTAL_MMC_32K Clocks
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: GEL Output: ***All IP Clocks are Enabled***
[10/02/2025, 17:13:12] [INFO] Cortex_R5_0: Writing Flash @ Address 0x60000000 of Length 0x00007ff0
[10/02/2025, 17:13:33] [ERROR] Cortex_R5_0: Run failed...
[10/02/2025, 17:13:33] [ERROR] Cortex_R5_0: File Loader: Memory write failed: Timed out waiting for target to halt while executing am263px_flasher.out

正如您在日志中看到的、UniFlash 在连接到器件时没有问题。 我已将 UNIFLASH 8.7尝试到9.0、

我希望您能理解、必须从 QSPI (1S)-> DevBoot -> QSPI (1S)更改引导模式对我们来说完全不切实际。


我的第一个请求:请告知为什么(原则上) SOC 无法在 QSPI (1S) 模式下进行刷写。 这可能提供了一些线索,我如何才能挽救情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    产生该问题的原因是、我们的应用程序将多路复用器配置为能够将 HSEC_EQEP2_A 和 HSEC_EQEP2_B 用于 GPIO。 这意味着 EEPROM 会断开连接。

    这对于我们的应用来说表面上没有问题、因为我们没有使用 EEPROM。 但是、不明显的是 UniFlash 使用的 stock flasher.out 文件需要读取 EEPROM、否则会失败。 请参阅 TMDSCNCD263P:为什么 OSPI Flasher 会读取 EEPROM? -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    当我在应用程序中恢复 I2C 连接后、问题解决了、我 再次能够在 QSPI (1S)模式下使用 UniFlash 进行刷写。

    教训是、如果您要将 UniFlash 与其库存 flasher.out 一起使用、则您的应用不得使用与 I2C 上的 EEPROM 进行通信的引脚。 替代方法是制作自定义闪存器、该闪存器可完全避免读取 EEPROM。

     问题仍然存在:为什么手册规定 DevBoot 模式由 UniFlash 进行刷写? 为什么不使用 QSPI (1S)? 这纯粹是为了避免我刚才所说的情况、还是其他原因?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kier:

    [报价 userid="479799" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1472201/am263p4-q1-uniflash-cannot-flash-by-xds11s-in-qspi-1s-boot-mode/5659216 #5659216"]我们的经验教训是、如果您要将 UniFlash 与它的库存 flasher.out 一起使用、那么您的应用程序不得使用与 I2C 上的 EEPROM 进行通信的引脚。 替代方案是制作自定义闪存器、从而避免完全读取 EEPROM [/QUOT]

    默认情况下、Uniflash 中的闪存器适用于 TI 电路板。 您能否尝试为您的电路板修改 SDK 中的 Flasher 项目、并重试。

    sdk_path \tools\flasher\JTAG_uniflash\am263px-cc

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Nilabh、但我更改了我们的应用程序、以便 再次连接 EEPROM、从而避免不得不让客户闪光器。 不过、我将在一个月左右为我们的定制 PCB 制作定制闪存器。

    但是、目前、了解结合使用 QSPI (1S)引导模式与 UniFlash 是否存在连锁反应至关重要:

    -  为什么该手册规定 DevBoot 模式用于通过 UniFlash 进行刷写? 为什么不使用 QSPI (1S)?

    -这纯粹是为了避免我刚才描述的情况,还是有其他原因?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价用户 id="479799" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1472201/am263p4-q1-uniflash-cannot-flash-by-xds11s-in-qspi-1s-boot-mode/5659242 #5659242"]

    但是、目前、了解结合使用 QSPI (1S)引导模式与 UniFlash 是否存在连锁反应至关重要:

    -  为什么该手册规定 DevBoot 模式用于通过 UniFlash 进行刷写? 为什么不使用 QSPI (1S)?

    [报价]

    在 QSPI 1s 引导模式下使用 Uniflash 时不应有任何限制。 我将花一点时间来解释 uniflash 如何在 QSPI 1中工作。

     引导引脚设置为 QSPI 1s、一旦器件上电、ROM 就会检查引导引脚并尝试以1秒模式引导、它将开始并在位置0x0处读取闪存、具体取决于是否存在有效映像、它将引导或转到冗余位置:

    如果这些位置都没有有效的图像、  系统进入紧急模式、即代码等待看门狗重置器件、WDT 超时为180秒。

    WDT 将在180秒后发出复位、 因此、如果您要使用 Uniflash、需要注意的是、它需要在 ROM 发出复位命令之前完成。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢您提供的信息。