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.

[参考译文] LAUNCHXL-F28379D:CCS20如何调试 lab_cla_launchpad 教程项目

Guru**** 2331900 points
Other Parts Discussed in Thread: TMS320F28379D, TMS320F28377D, C2000WARE, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1505719/launchxl-f28379d-ccs20-how-to-debug-lab_cla_launchpad-tutorial-project

器件型号:LAUNCHXL-F28379D
Thread 中讨论的其他器件:C2000WARESysConfig、TMS320F28379D、TMS320F28377D

工具/软件:

我正在使用 CCS 20.1、在使用"工程向导"时、选择"lab_cla_launchpad"工程。 然后、我进入.syscfg 并将器件更改为 F29379D、这是我拥有的器件。 最后、我对进行了注释

__mdebugstop()
 lab_cla_tasks.cla 中。 保存后、我进入"Run"(运行)选项卡并按下"Debug"(调试项目)。  

如果不连接到 CPU1_CLA1、cla1Isr1会触发、但似乎未处理"实际"数据。 如所示、我在 LaunchPad 的引脚10上设置了信号发生器(我相信是 ADCA0)、我没有看到 FILTER_IN 或 FILTER_OUT 发生变化。  

连接到 CPU1_CLA1会立即停止 CLA 并恢复、从而使其立即再次停止。 但是、我看不到调试器暂停的位置(如果有)。

我从以前找到了一篇 关于 CCS8中的工作的松散相关论坛帖子、但这些说明似乎与 CCS20中可能出现的情况不一致。 我希望有一个解决方案,我的__ mdebugstop ()指令允许我在这个教程项目中逐步浏览 CLA 上的代码。  

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

    尊敬的 Bendik:

    请查看 CLA 软件指南中的调试部分、了解如何在 CLA 上进行调试

    https://software-dl.ti.com/C2000/docs/cla_software_dev_guide/debugging.html?highlight=debug# 

    请注意、连接到 CPU1_CLA1内核并加载符号将允许您逐步执行在 CLA 上运行的代码。 __mdebugstop ()内在函数是一个 CLA 断点。 它将指令 MDEBUGSTOP 放在汇编指令中的相应位置。 如果未连接到 CLA 内核(即禁用单步执行)、则内在函数的行为类似于 MNOP (无操作)

    此致、

    Ozino

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

    尊敬的 Ozino:

    遗憾的是、给出的文档似乎适用于基于 Eclipse 的 CCS。 CCS 20是基于 VS Code 的 IDE、因此文档与我看到的内容不符。 深入了解后、我在"Run"->"Load"->"Load Symbols"中找到了"Load Symbols"选项。 在该对话框中、我选择为工程生成的.out 文件(cla_lp_f2837xd.out)、现在存在一个不同但可能相关的问题:

    加载该文件时似乎将 C28xx_CPU1指令"转置"到 CPU1_CLA1上。 因此、调试器现在显示从第81行(即 code_start 块的开头)的"F2837xD/CodeStartBranch.asm 开始、遗憾的是、尝试使用"Step Into"或"Step Over"会导致在"Debugh Output"控制台中引发此错误:

    CPU1_CLA1: Can't Single Step Target Program: (Error -2060 @ 0x0) Requested operation cannot be done while device is running. Halt the device, and retry the operation. (Emulation package 20.1.0.3429) 

    停止 CLA1并重试无法解决此错误。  

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

    尊敬的 Bendik:

    上述文档中所述的说明仍应适用于 CCS20。 对于初学者、您能否导入 C2000Ware 中提供的一个 CLA 示例、并确认您能够将符号加载到 CLA 内核中、并观察程序在__mdebugstop ()函数处停止。

    这是尝试调试 CLA 时的预期行为。 此时、应该能够单步执行 CLA 上运行的 C 代码并观察变量的状态。

    此致、

    Ozino

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

    尊敬的 Ozino:  

    到目前为止、我分享的所有内容都是在"lab_cla_launchpad "示例(可能也称为"CLA 深入研究"?)上完成的。 为全面起见、我再次使用工程向导重新创建了工程、并重新执行了您建议的步骤。  

    1. 取消第92行"__mdebugstop();"的注释
    2. 通过"Run"->"Debug Project"启动调试会话
    3. 选择 C28xx_CPU1以加载程序
    4. 右键点击"Debug"侧栏中的 CPU1_CLA1、选择"Connect Target"
    5. 左键点击 CPU1_CLA1  
    6. 打开"Command Palette"并选择"CCS:Load Symbols"
    7. 现在、当地人会出现、手表现已填充
    8. 现在可以单步执行说明。

    您可能会注意到、该项目正在"运行"。 遗憾的是、我还发现了在第一个工程中无法调试的原因。 如果改为打开"lab_cla_launchpad.syscfg"并将微处理器设置为"F28379D"、然后按照上述说明操作、则您将在"

    F2837xD/CodeStartBranch.asm81:0'并且无法在__mdebugstop ()中单步或开始调试;  
    我不确定为什么会出现这种情况。 提供的 syscfg 似乎正确配置工程。 捆绑的 syscfg 是否可能与最新版本的 CCS 一起过时?

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

    尊敬的 Bendik:

    很高兴看到您能够让开箱即用的 CLA 示例正常工作。 在 SysConfig 中切换器件时似乎出现了问题。 在尝试切换到 F28379D 之前、初始器件是什么? 是否是另一个 F2837xD 器件型号? 如果是、您应该能够在 F28379D 示例上使用同一项目。

    请注意、您应该可以使用此示例作为开发的起点。  

    您能否确认使用工程向导创建的工程在设置和配置方面是否与 CLA 示例相似? 请注意、使用工程向导报告存在问题。 如果您需要空白模板、我建议在 C2000Ware 中导入其中一个空工程、并以此为起点。

    syscfg 软件示例应与最新的 CCS 兼容。 如果您另有观察、请附加错误消息的屏幕截图。

    此致、

    Ozino

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

    尊敬的 Ozino:

    首先、我尝试了从"File"->"Import Project (s)"对话框导入工程。 我导航到"C2000Ware_5_04_00_00\training\device\f2837xd\advance_topices\lab_cla"、并导入了 LaunchPad 示例。

    接下来、我经历了上次对我有用的相同步骤。 这确实有效、因此在使用系统配置器之前、导入和使用工程向导至少没有区别。

    接下来、我打开了 System Configurator。 System Configurator 默认建议使用 TMS320F28377D。 配置器似乎建议 SysConfig 文件使用非标准器件名称、但好像它最初是在 TMS320F28379D 上配置的。

    我 为器件选择 TMS320F28379D 并再次执行前面提到的步骤。 第一次遇到此问题时:

    CPU1_CLA1: GEL: Encountered a problem loading file: C:\Users\BMann\AppData\Local\Temp\ti_cloud_storage\lab_cla_launchpad.syscfg Could not determine target type of file
    Encountered a problem loading file: C:\Users\BMann\AppData\Local\Temp\ti_cloud_storage\lab_cla_launchpad.syscfg
    Could not determine target type of file

    出于好奇心、我只是再次尝试加载符号。 那... 似乎刚刚解决了它。 此修复通过项目清理和整个会话持续存在。  

    我尝试将 FIR_LEN 减少至15并再次编译。 再说一次、... 似乎运行正常。

    我尝试添加一些额外的指令、然后再次能够逐步完成 CLA。

    最后,为了最终的超越奖励,我从项目向导创建了另一个项目。 我打开系统配置器、将器件设置为  TMS320F28379D。 已执行上述步骤以启动调试... 都能正常使用。

    我不能很确定这一过程是通过哪一步进行的。 它加载了两次符号吗? 它是否使用了"导入工程"而不是"Project Explorer"? 在这两种情况下,这些步骤似乎已经为我解决了。

    1. 使用"file"->"Import Project (s)"对话框导入 CLA 工程
    2. 在 System Configurator 中、将器件名称设置为   TMS320F28379D
    3. 取消 CLA 文件中的__mdebug 行的注释。
    4. 在 Core1上开始调试工程
    5. 继续 Core1
    6. 连接到 CLA1
    7. 使用调色板菜单执行"CCS:Load Symbols"命令
    8. 尝试恢复 CLA1、如果此操作有效、您可能会在此停止。
    9. 否则、使用调色板菜单再次执行"CCS:Load Symbols"命令
    10. 现在、您应该能够通过步骤指令和调试点在 CLA1上进行调试(使用_mdebug...)