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.

[参考译文] XIP-AM263PX:AM263Px — 调试 MCU-PLUS-SDK 应用

Guru**** 2534270 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1553083/mcu-plus-sdk-am263px-am263px---debugging-xip-applications

器件型号:MCU-PLUS-SDKAM263PX-AM263PX
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

您好、

我 能够从 OSPI 闪存 (AM263Px — 控制卡)运行该应用程序、并且在调试 XIP 应用时发现了一些限制。

 您能为下面的建议一个变通办法吗?

  1. 是否有办法在从 OSPI 闪存执行应用时执行逐步引入、逐步淘汰和逐步淘汰操作?  如果我执行任何操作、程序会崩溃、恢复电路板的唯一方法是重新刷写软件。
  2. 是否有方法在调试 XIP 应用时执行 CPU 重置或系统重置? 如果我执行任何一个操作、程序会进入异常状态(假设在 CPU 复位或系统复位后 OSPI 未初始化)、恢复电路板的唯一方法是重新刷写软件。
  3. 如何在 CCS 中设置硬件断点、因为软件断点不适用于 XIP 应用。

                                                                                                                                                                                                                                   

据我所知、如果我在 RAM 中执行特定函数或整个应用程序、则可以执行所有的调试操作。 但我更感兴趣的是、应用程序太大、并且 RAM 中没有足够的资源、因此我无法在 RAM 中执行整个应用/特定函数来进行调试。

 一个一般问题 — 我想链接以了解在 OSPI 闪存中执行生产软件是否有任何限制?

此致、
Mahendran L

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

    尊敬的 Mahendran:

    抱歉!! 这位专家因休假而离职。 请在 EOD 之前收到回复

    此致、
    Rijohn

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

    尊敬的 Mahendran:

    请参阅以下 e2e 以在 CCS 中设置 XIP 调试。 按照以下步骤操作后、XIP 调试应正常工作。

     【常见问题解答】AM263P4:如何在 AM263PX 中调试 XIP 应用 

    1.  

    是否有办法在从 OSPI 闪存执行应用程序时执行逐步引入、逐步过渡和逐步退出操作?  如果我执行任何此操作,程序崩溃,恢复板的唯一方法是重新刷新软件。

    一旦目标配置与常见问题解答中的目标配置保持一致、就有可能实现这一点

    2.

    在调试 XIP 应用程序时是否有方法执行 CPU 重置或系统重置? 如果我执行任何一个操作、程序会进入异常状态(假设在 CPU 复位或系统复位后 OSPI 未初始化)、恢复电路板的唯一方法是重新刷写软件。

    您如何执行此重置。 这通过代码实现。 在此期间是否重置闪存?

    您能解释一下这是如何实现的吗?

    为了使应用程序通过 SBL 再次加载、不应该再次初始化 OSPI 和闪存?

    3.  

    如何在 CCS 中设置硬件断点、因为软件断点不适用于 XIP 应用。

    我检查一下 CCS 中是否包含此功能、我不确定是否包含此功能。 您可以通过右键点击并选择硬件断点来分配硬件断点。

    我要链接以了解在 OSPI 闪存中执行生产软件是否有任何限制?

    你能详细说明你所考虑的限制的种类吗? 如果是关于性能、那么使用 XIP 和 OpTIFlash、性能将与从 RAM 执行的性能几乎相同。

    此致、

    Aswin

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

    尊敬的 Aswin:

    感谢您的答复。

    我禁用了在更新目标配置属性后允许在工程属性中使用软件断点、而不是在目标配置属性中使用软件断点、以便能够执行逐步引入和逐步退出操作。 这也解决了断点问题、现在我可以双击任意一行以插入硬件断点。


    但是、我在 CCS 复位和重新启动时仍然遇到问题。 能否让我知道我是否可以使用 CCS 复位/重新启动?



    你能详细说明你所考虑的限制的种类吗? 如果是关于性能、那么使用 XIP 和 OpTIFlash、性能将与从 RAM 执行的性能几乎相同。 - 是的,我主要关心的是 XIP 应用程序的性能。 稍后我将介绍数据表中的性能矩阵。 谢谢。

    此致、
    Mahendran L

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

    尊敬的 Mahendran:

    但是我在 CCS 复位和重新启动时仍然遇到问题。 您能让我知道我是否可以使用 CCS 复位/重新启动吗?

    若要重新启动、您是否可以使用断开调试器 在 CCS 中断开目标选项

    断开连接后、点击 SYSTEM RESET(系统复位)。 您应该能够以这种方式重新启动代码。 系统复位时、SBL 将启动(这可以通过 UART 中的 SBL 日志进行验证)、并且控制将在应用程序执行开始时一直卡在循环中。

    此致、

    Aswin

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

    尊敬的 Mahendran:

    [引用 userid=“666805" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1553083/mcu-plus-sdk-am263px-am263px---debugging-xip-applications/5983692 ] 是的、我主要关注 XIP 应用程序的性能。 稍后我将查看数据表中的性能矩阵

    请查看 MCU PLUS SDK 中的基准测试部分

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/10_02_00_15/exports/docs/api_guide_am263px/EXAMPLES_BENCHMARKS.html

    本节包含一些可用于对 XIP 性能进行分级的示例。

    此致、
    Aswin

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

    尊敬的 Aswin:

    已尝试您建议的步骤、但应用程序未按预期引导(请查看下图)。 让大家知道我在 main 之前没有无限循环、但这只是在连接调试器之前强制程序保持在那里所需的。



    开机重置是唯一的选项吗?

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

    尊敬的 Mahendran:

    我想您正在开发引导模式下调试。 我认为问题与 XIP 调试相关。 如果是关于一般调试、那么让我检查一下。

    此致、

    Aswin

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

    尊敬的 Aswin:

    我在 OSPI 引导模式下调试 XIP。  抱歉我没有正确地解释我的环境。

    我使用预编译的 OSPI SBL。 我使用 UNIFLASH 在开发模式下刷写 SBL +应用程序映像+应用程序 XIP、然后在启动目标之前切换到 OSPI 模式+ POR。

    此致、
    Mahendran L

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

    尊敬的 Mahendran:

    感谢您提供的信息。  

    出于好奇心问道、如果应用中没有无限 while 循环、那么目标连接是如何完成的?  

    如果没有有限循环、则应用程序将在切换到 OSPI 引导模式时开始执行并将其复位。 在应用执行期间连接目标可能无法获得确定的调试起始位置。

    我使用的是 AM263P LP、您使用的是定制电路板还是 TI EVM? 在我的示例中、在系统复位时、整个应用程序开始从 SBL 执行、因为闪存也进行了复位。 复位闪存很重要、这样、ROM 将处于已知状态来读取 SBL 并开始执行。

    此致、

    Aswin

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

    尊敬的 Aswin:


    我的示例应用程序 在 main 后面有一个不同的 while 循环、每当我连接调试器时、程序都会始终处于该 while 循环。
    我正在使用 TI EVM(AM263Px 控制卡)、但如何复位闪存呢?




    上图来自 EVM 用户指南、PORz 按钮连接到闪存的复位引脚。  我假设无法进行 CCS 系统复位、因为闪存只能通过 POR 进行复位。

    但为什么在进行 CCS 系统复位后我们必须断开目标并连接目标呢?

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

    你好、Mahendran

    对延迟的答复表示歉意

    根据我的理解、CCS 提供热复位。 根据电路板设计、该热复位可提供闪存复位。 在这种情况下、很明显我们需要使用 PORz 按钮而不是热复位。

    您能否断开目标、提供 PORz 然后再次重新连接?

    如果 PORz 在连接目标时完成、则可能会破坏与器件和 SoC 的连接。 您将能够 在控制台中看到一些“无法连接“消息。 这就是我提到要断开目标的原因

    此致、

    Aswin

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

    尊敬的 Aswin:

    感谢您的答复。  
    是的、在当前硬件设置中、PORz 是复位闪存的唯一方法、在执行 POR 后、我可以重新连接到目标、而不会出现任何问题。

    如果闪存的复位连接到 AM263Px 的热复位、则 CCS 复位将同时复位 Micro 和 OSPI 闪存。

    此致、
    Mahendran L

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

    尊敬的 Mahendran:

    是的、您的观察结果是正确的。 这取决于硬件设计。 CCS 系统复位发出 SoC 级热复位、在 LP 设计中、热复位符合闪存要求。 在 CC 中、情况并非如此。

    此致、

    Aswin

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

    感谢您对 Aswin 的澄清。