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.

[参考译文] AM2631:研究 AM2631 刷写问题:DevBoot Mode 是否是必需的?

Guru**** 2577385 points
Other Parts Discussed in Thread: UNIFLASH, AM2631

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1569725/am2631-investigation-into-am2631-flashing-issues-is-devboot-mode-mandatory

器件型号:AM2631
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

我们目前正在使用的产品 UniFlash 将代码刷写到中 AM2631 。 通常、我们设置 SOP 开关 才能启用 DevBoot 模式 在刷写之前、(SOP0、SOP1、SOP3 = OFF;SOP2 = ON)、在该过程完成后、我们会将所有 SOP 切换为 ON。 该过程可靠运行。

然而、为了简化操作、我们尝试了在不更改 SOP 开关的情况下进行刷写、即让系统处于刷写状态 QSPI (4S)-四路读取模式 。 在此模式下、我们注意到以下行为:

  • 刷写可以正常工作 ,但经常 分步执行 、需要第二次尝试。

  • 有趣的是、有一些软件版本、例如 B002 、每次闪烁都成功(20 次尝试中的 20 次)。

  • 但使用版本 B003 、闪烁 每次第一次尝试时失败 、并且只有在重试后才会成功。

根据我们的理解、当系统处于 QSPI (4S) 模式时、即 QSPI RBL (ROM 引导加载程序)自动运行、加载和执行 SBL 地址。 在此过程中、可能会修改内部寄存器或配置、这可能会干扰刷写过程。

相比之下、 DevBoot 模式 完全跳过 RBL、避免出现任何使其成为的此类副作用 最可靠的选项 刷写模式。

因此、我们要确认:

  1. DevBoot 模式 在使用 UniFlash 进行刷写时、始终建议使用该工具以避免此类故障?

  2. 正在闪烁 QSPI (4S) 模式 由于 RBL/SBL 可能会改变芯片状态、因此固有不稳定?

  3. 鉴于不同版本之间的行为不同(例如,B002 与 B003)、闪烁故障更可能是由以下原因引起的:

    • QSPI 模式导致的引导加载程序干扰?

    • 或软件版本本身的具体更改?

  4. 是的,是的 必填 以将 SOP 开关设置为 DevBoot 模式 每次 我们闪存?

    • 或者、在某些条件下是否认为可以在不更改 SOP 开关(即在 QSPI 模式下)的情况下闪烁?

我们想要确定此问题是与软件相关、还是不将 SOP 设置为 DevBoot 的固有限制。

下面是我们使用的引导模式 PIN 设置的屏幕截图、以及刷写失败时的日志记录。

e2e.ti.com/.../7028.log.txt

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

    您好、您是否在 每次刷写设备之前对其发出电源重置命令。

    DEV 引导会跳过 RBL、因此 QSPI IP 没有预先存在的配置。 但即使在 4s 引导模式下、您也应该能够刷写它。

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

    是。每次刷新设备之前 、我都会重新启动 。 那么、我应如何检查

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

    使用 UniFlash 进行刷写时、是否始终建议使用 DevBoot 模式来避免此类故障?

    由于 RBL/SBL 可能会改变芯片状态、QSPI (4S) 模式下的刷写是否固有不稳定?

    鉴于不同版本之间的行为不同(例如,B002 与 B003)、闪烁故障更可能是由以下原因引起的:

    QSPI 模式导致的引导加载程序干扰?

    或软件版本本身的具体更改?

    最终、是否必须在每次进行闪存时将 SOP 开关设置为 DevBoot 模式?

    或者、在某些条件下是否认为可以在不更改 SOP 开关(即在 QSPI 模式下)的情况下闪烁?

    请帮助 确认   以上问题

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

    大家好、我是 Kiana 的同事。在正常操作期间、我们的电路板是通过 uniflash 使用固件烧录的、但 SBL 和应用并未被编写。 我知道,燃烧失败是由于闪存的属性之前刷新的一闪。 感谢您的回答。

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

    您好、

    感谢您的信息。

    使用 UniFlash 进行刷写时是否始终建议使用 DevBoot 模式来避免此类故障?

    是的、开发引导模式是闪存编程的默认方式。

    [报价 userid=“543811" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1569725/am2631-investigation-into-am2631-flashing-issues-is-devboot-mode-mandatory/6049457

    由于 RBL/SBL 可能会改变芯片状态、QSPI (4S) 模式下的刷写是否固有不稳定?

    [/报价]

    我们没有看到这种情况、一些客户也已在生产编程中使用了这种情况。

    [报价 userid=“543811" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1569725/am2631-investigation-into-am2631-flashing-issues-is-devboot-mode-mandatory/6049457

    鉴于不同版本之间的行为不同(例如,B002 与 B003)、闪烁故障更可能是由以下原因引起的:

    QSPI 模式导致的引导加载程序干扰?

    或软件版本本身的具体更改?

    [/报价]

    由于我没有这些软件版本之间的具体变化、因此我很难发表评论

    P.S.如果闪存完全为空、则您需要确保刷写过程在 180 秒内完成、否则 ROM 将重置电路板、刷写将失败。

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

    感谢您的及时答复。 我还想征求您对以下问题的意见、以便我们可以通过自己的软件代码快速解决问题。  

    张斌 说:

    大家好、我是 Kiana 的同事。在正常操作期间、我们的电路板是通过 uniflash 使用固件烧录的、但 SBL 和应用并未被编写。 我知道,燃烧失败是由于闪存的属性之前刷新的一闪。 感谢您的回答。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在正常操作期间、我们的电路板通过 uniflash 使用固件烧录、但未写入 SBL 和应用

    对不起,回复延迟,我上星期休假. Uniflash 中是否显示了任何错误代码。

    此外、未完成刷写的观察来自应用程序且 SBL 无法引导或者其他类型吗?

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

    e2e.ti.com/.../0574.log.txt

    当我第一次问这个问题时,我附上了 uniflah 未能刻录的日志信息。 有关详细信息、请参阅附件。 以下是附件的简要摘录。   请尽快答复、谢谢

    1、第一个加载代码错误消息如下:

    [2025/9/19 上午10:52:00][info] Cortex_R5_0:GEL 输出:***所有 IP 时钟均已启用***
    [2025/9/19 上午10:52:00][info] Cortex_R5_0:AM2631
    [2025/9/19 上午10 :52:00]【信息】Cortex_R5_0:板选择: CC
    [2025/9/19 上午10:52:00][info] Cortex_R5_0:GEL 输出:已在程序加载时通过 GEL 发出 CPU 复位(软复位)。
    [2025/9/19 上午10:52:02][info] Cortex_R5_0:在偏移 0x0 处写入 1 个块
    [2025/9/19 上午10:52:22]【错误】Cortex_R5_0:运行失败...
    [2025/9/19 上午10:52:22][error] Cortex_R5_0:在 0x70009310 处通过“保持暂停“操作删除断点时遇到问题:(错误–1066 @ 0x70009310)无法设置/清除请求的断点。 验证断点地址是否在有效存储器中。 (仿真包 20.2.0.3575)
    [2025/9/19 上午10:52:22]【错误】Cortex_R5_0:文件加载程序:存储器写入失败:执行 am263x_flasher.out 时等待目标停止超时
    [2025/9/19 上午10:52:23][info] Cortex_R5_0:在偏移 0x0 处写入 1 个块

    2、第二个 加载代码、错误消息如下所示:

    [2025/9/17 下午4:50:08][info] Cortex_R5_0:GEL 输出:***所有 IP 时钟均已启用***
    [2025/9/17 下午4:50:08][info] Cortex_R5_0:GEL 输出:已在程序加载时通过 GEL 发出 CPU 复位(软复位)。
    [2025/9/17 下午4:50:10][info] Cortex_R5_0:在偏移 0x0 处写入 1 个块
    [2025/9/17 下午4:50:30]【错误】Cortex_R5_0:运行失败...
    [2025/9/17 下午4:50:30][ERROR] Cortex_R5_0:在 0x70009310 处通过“保持停止“操作删除断点时出现问题:(错误–1066 @ 0x70009310)无法设置/清除请求的断点。 验证断点地址是否在有效存储器中。 (仿真包 20.2.0.3575)
    [2025/9/17 下午4:50:30]【错误】Cortex_R5_0:文件加载程序:存储器写入失败:执行 am263x_flasher.out 时等待目标停止超时
    [2025/9/17 下午4:50:31][info] Cortex_R5_0:在偏移 0x0 处写入 1 个块
    [2025/9/17 下午9:12:48]【错误】Cortex_R5_0:错误:(错误–261 @ 0x0)接收到来自 XDS110 的无效响应。 (仿真包 20.2.0.3575)
    [2025/9/17 下午9:12:51][ERROR] CS_DAP_0:错误:(错误–261 @ 0x0)接收到来自 XDS110 的无效响应。 (仿真包 20.2.0.3575)
    [2025/9/17 下午9:12:51]【错误】CS_DAP_0:错误:(错误–122 @ 0x0)在函数中检测到错误的参数值。 SMG_CALL () 中的`SC_args'很可能有问题。 (仿真包 20.2.0.3575)
    [2025/9/17 下午9:12:51][ERROR] CS_DAP_0:错误:(错误–261 @ 0x0)接收到来自 XDS110 的无效响应。 (仿真包 20.2.0.3575)
    [2025/9/17 下午9:12:51]【错误】Cortex_R5_0:20 次尝试后无法确定目标状态
    [2025/9/17 下午9:12:51]【错误】CS_DAP_0:20 次尝试后无法确定目标状态
    [2025/9/17 下午9:12:51]【错误】Cortex_R5_0:在断开连接之前未能从目标删除调试状态。 程序存储器中可能仍嵌入了断点操作码。 建议在连接并重新加载程序之前重置仿真器、然后再继续调试
    [2025/9/17 下午9:12:51]【错误】CS_DAP_0:在断开连接之前未能从目标删除调试状态。 程序存储器中可能仍嵌入了断点操作码。 建议在连接并重新加载程序之前重置仿真器、然后再继续调试

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

    您好、

    您是否也在使用 uniflash 时使用 CCS?

    我只有在 JTAG 被 CCS 等其他程序占用时才看到这个错误