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:如何在启动新调试会话时复位所有内容?

Guru**** 2800955 points

Other Parts Discussed in Thread: AM263P4

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1620390/am263p4-q1-how-to-reset-everything-when-starting-new-debug-session

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

您好:

到目前为止、我对微控制器的使用经验是、如果我启动一个新的调试会话、所有内容都将复位、并且寄存器具有其默认值、就像一个 POR。

尤其是此控制器(?) 而 CCS20.4,它是不同的,我没有设法实现我想要和期望,但.  

默认方式会进行某种复位、但不会像 ePWM 那样复位外设寄存器、这将导致半个 PWM 信号中断和意外行为。 此外、这在电力电子产品中具有潜在危险、因为在控制器停止并重新编程时 PWM 信号将继续存在。

在目标配置的高级设置中、将“Apply nRESET/SRST Pin on Debug Header“设置为“Pulse this pin on debug probe startup“确实会发出硬件复位、从而产生干净的寄存器、但启动将卡在“GEL expression:OnTargetConnect ()“位置。 我可以取消 CCS 中的弹出窗口、它会继续显示日志条目“Cortex_R5_0:GEL:执行 OnTargetConnect ():Evaluation canceled“时出错、但这很烦人、我不知道取消是否会导致其他问题。 此外、XDS110 上不提供此复位引脚选项、仅适用于 XDS200。

当我点击“Start Debugging“时、我必须执行什么操作、控制器将完全复位并启动新的调试会话、不涉及额外的步骤?

此致、
Frank

 

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

    您好 Frank、

    要在启动 AM263P4 上的调试会话时实现完整的系统复位、用户需要配置 CCS 以在连接时自动执行系统复位、或使用修改后的 GEL 文件启用硬件复位、以防止 OnTargetConnect () 挂起。 默认 CPU 复位仅复位 R5F 内核、而不会复位 ePWM 等外设、这会说明观察到的行为。

    响应

    了解复位行为

    您的观察结果是正确的 — AM263P4 上的默认调试连接行为不会执行完全系统复位。 调试器内的标准 CPU 复位或重新启动只会复位 R5F 内核、而不会复位整个片上系统 (SoC) 或其外设[1]。 这就是为什么 ePWM 寄存器会保留其先前的状态、从而导致您遇到的危险的 PWM 继续。

    复位行为由位于${MCU_PLUS_SDK_PATH}/tools/ccs_load/am263px/的 GEL(通用扩展语言)文件控制。 当调试器连接时、OnTargetConnect()am263px_main.gel将执行文件中的AM263Px_multicore_reset_and_halt()函数、这会调用以下函数:一个仅用于将 R5F 和 M4F 内核保持在复位状态以进行 IDE 连接、而不是复位所有外设[2]。

    解决方案 1:配置连接时自动系统重置

    最直接的解决方案是配置 CCS、以便在连接时自动执行系统复位:

    启用自动复位的步骤:

    1. 在 CCS 中、转到 Run > Debug Configurations...
    2. 从左侧列表中选择您的目标配置
    3. 导航至 目标 配置
    4. 在下面 自动运行和启动选项 组中、选中复选框 在连接时复位目标 [3]

    注意: 并非所有目标和调试探针都支持该功能[3]。 启用此选项后、当您开始调试时、系统将执行与上电复位 (POR) 等效的复位、从而复位包括所有外设在内的整个 SoC。

    解决方案 2:手动系统重置程序

    如果连接时自动重置不可用或不适用于您的设置、您可以在连接后执行手动系统重置:

    1. 在 CCS Debug 视图中、选择 Cortex_R5_0 磁芯
    2. 导航至 Run > Reset > System Reset
    3. 复位后、内核将停止。 要从头启动应用程序、请导航至 Run > Resume [4]

    此系统复位等效于 POR、并复位包括所有外设在内的整个 SoC [4]。

    解决方案 3:修复硬件复位 GEL 挂起问题

    您正确识别出、通过“在调试接头上应用 nRESET/SRST 引脚“启用硬件复位会导致调试器在“GEL expression:OnTargetConnect ()“处挂起。 发生这种情况是因为 GEL 脚本在仍处于复位状态[5]时尝试访问器件。

    对于 XDS200 调试探针:

    提供了专门针对 XDS200 探针的权变措施文档:

    1. 转到 视图>目标配置
    2. 右键点击.ccxml 文件并选择 工程属性
    3. 转到 高级 配置
    4. 选择 Cortex_R5_0 磁芯
    5. 确保 复位类型 设置为 硬件复位
    6. 更改 初始化脚本 从默认值.../mcu_plus_sdk/tools/ccs_load/am263px_r5.gel.../mcu_plus_sdk/tools/ccs_load/am263px_r5_noDAP.gel[6]

    挂起是由默认 GEL 文件执行的虚拟 DAP 写入引起的、am263px_r5_noDAP.gel文件会省略该写入[6]。

    替代 GEL 修改方法:

    如果上述权变措施无法完全解决您的问题、您可以手动修改 GEL 文件:

    1. 在以下位置找到 GEL 文件: {CCS_INSTALL_DIR}\ccs\ccs_base\emulation\gel\AM263x\AM263x.gel
    2. 打开文件并找到OnTargetConnect()函数
    3. GEL_Delay(100000);在函数开头添加一行以添加 100ms 延迟[5]

    此延迟使器件能够在由 GEL 脚本访问之前退出复位状态。

    XDS110 限制:

    遗憾的是、XDS110 调试探针不提供硬件复位引脚选项、该选项仅适用于 XDS200 [6]。 如果您使用 XDS110、则需要依赖解决方案 1(连接时自动系统复位)或解决方案 2(手动系统复位)。

    建议的方法

    对于调试期间 PWM 继续存在危险的电力电子产品用例、我建议:

    1. 首先、尝试解决方案 1 -在调试配置中启用“在连接时重置目标“。 这应该会提供最干净的自动复位行为。

    2. 如果使用 XDS200 、使用修改后的 gel 文件实施解决方案 3、以启用硬件复位而不出现挂起问题。

    3. 如果使用 XDS110 、您只能使用基于软件的系统重置选项(解决方案 1 或 2)、因为此探测器不支持硬件重置配置。

    其他注意事项

    在活动调试会话期间重新加载代码时、不需要终止会话。 配置 Run > Load > Load Program... (或 Reload Program...)、如果 CCS 检测到重建的可执行文件[7]、则会提示重新加载。 但是、此重新加载不会执行系统复位、因此除非您之后手动执行系统复位、否则外设状态将持续存在。

    引文

    1. AM263x/AM263Px MCU+ SDK 用户指南 — 系统复位与 CPU 复位
    2. AM263x/AM263Px MCU+ SDK 用户指南 — GEL 文件初始化
    3. AM263x/AM263Px MCU+ SDK 用户指南 — 连接时自动复位配置
    4. AM263x/AM263Px MCU+ SDK 用户指南 — 系统复位过程
    5. AM263x/AM263Px MCU+ SDK 用户指南 — 硬件复位 GEL 修改
    6. AM263x/AM263Px MCU+ SDK 用户指南 — XDS200 硬件复位权变措施
    7. AM263x/AM263Px 应用手册 — 调试会话管理
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这个人工智能答案是没有帮助的,充满了不记名股票

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

    您好 Frank、

     在 TI EVM 上、系统复位会通过 XDS110 执行 WARMRSTn、基本上会复位所有内容。

    、但启动过程会卡在“GEL expression:OnTargetConnect ()“位置。 我可以取消 CCS 中的弹出窗口、它会继续显示日志条目“Cortex_R5_0:GEL:执行 OnTargetConnect ():Evaluation canceled“时出错、但这很烦人、我不知道取消是否会导致其他问题。 此外、XDS110 不提供此复位引脚选项、仅适用于 XDS200。

     如果您通过 nReset 引脚标头执行此操作、可以在.gel 文件中注释掉 GEL 复位 API。

    ]当我点击“Start Debugging“时、我必须执行什么操作、控制器将完全重置并启动新的调试会话、不涉及任何额外步骤?

    仍需执行两步、重置控制器、然后点击“Start debugging“