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.

[参考译文] TMS320F28027:TMS320F28027 C2000实验1未在调试窗口中显示变量-使用 Launch XL (TMS320F28027F)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1451670/tms320f28027-tms320f28027-c2000-lab-1-not-showing-variables-in-the-debug-window--using-launch-xl-tms320f28027f

器件型号:TMS320F28027
Thread 中讨论的其他器件: C2000WARE

工具与软件:

大家好-我正在尝试从实验练习一(C2000技术讲座:C2000 Piccolo 1日技术讲座)中弄清楚我的代码现在发生了什么情况。

我对 C2000系列 MCU 和 CCS 非常陌生:如果将 C2000 Launchpad XL 用于器件 TMS320F28027F、而 CCS 版本为12.8.0

该文档(位于 C2000技术讲座链接中)适用于第2代器件、因为第3代中没有列出我的 Launchpad XL。

实验文档包含分步 pdf、我还要观看 youtube C2000技术讲座视频。 因此、我们提供了大量现成的参考资料。

实验1询问:

1-创建目标配置文件。 这里我将使用 XDS100 V2、因为我有板载 JTAG、并且我在创建目标配置文件时测试了此选择。

2 -使用提供的链接器命令文件进行映射。

运行和调试一段非常简单的代码(也随连接器命令文件提供)。

所有这些都很简单:

我创建了目标配置文件、并且在创建 CCS 项目时、我确保将连接器命令文件选择为"none"。 运行时支持库保留为自动。

代码编译和加载成功。 我在教程中已经按照说明验证了内存寄存器、并且这些值确实被载入代码至内存。

然而、与视频不同、我调试视图中的变量在运行代码时消失。

怎么会这样呢?


Thx 寻找!

e2e.ti.com/.../8686.Project.zip

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

    您好、UM、

    如果您是新手、欢迎使用 C2000! 在一些背景信息下、我们的 C28x Academy 旨在成为一个可扩展的平台、用于学习模块和实践技术讲座/实验室来了解第3代 C2000器件。 F2802x 等较旧器件被视为 Gen-2。 虽然该学院不直接支持这些设备、但确实存在 您注意到的 OLE 专题讨论会和视频-很高兴您能够利用这些技术讲座和视频。

     
    为了澄清您的问题、您是否要进入 CCS 工具栏"View">"Expressions"打开"WatchExpressions"窗口、然后单击新窗口输入变量? 完成此操作后、您应该能够运行该程序并打开持续刷新功能、以便在运行时看到变量会自动更新。  

    如果需要帮助、我们 还提供 CCS 调试文档、例如 https://software-dl.ti.com/ccs/esd/documents/users_guide/index_debug.html >> special: https://software-dl.ti.com/ccs/esd/documents/users_guide/gel/sym_expr.html?highlight=watch%20expression。  

    此致、

    Allison

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

    是的、我正在使用"View">"Expressions"窗口观察表达式、实际上我已经选择了黄色的小箭头进行持续更新。  

    但当我运行代码时变量会消失。 我怀疑它可能与我正在使用的 CMD 文件相关(实验室文档中也提供了该文件)。

    您是否可以在第2代 C2000技术讲座中查看实验1文件。 它不广泛、代码极其简单。

    Fewiw、我确实以 zip 文件的形式将我的文件附加到原始文章中。  

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

    嗨、大家好!

    我导入了你的项目,并按照研讨会说明单步通过 main()。 我看到变量在每个步骤正确更新,并以 while ()语句结束。 您能否仔细检查一下您是否可以执行该操作、以及您是否能够逐步完成这些操作?

    此致、

    Allison

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

    我下载了我附加到新工作区的 zip 文件。 只是为了确保我们可以比较众所周知的"苹果与苹果"。

    以下是成功构建和加载代码但尚未运行代码后的屏幕截图。 您可以看到、变量已加载到表达式和变量监视窗口中。

    这是在我按"运行"按钮后的图片:

    这些值确实在更新:Z = 9、并且所有表达式和变量确实会显示出来。 我像大家一样放置了一个断点、能够查看变量和表达式。 一切都很好;达到了实验目标。

    但是、t 当我 在代码中没有任何断点的情况下直接按下运行按钮时、会出现以下情况:

    为什么 z 会变为随机数?为什么变量会消失? 这是因为程序一旦通过它们,即进入陷阱语句,就不知道它们? 我怀疑以下陈述与此相关?

    在 C:\Users\owner\new_ws_1\lab1\Debug\lab1.out:{3}0x3ff5f5{4}处没有可用于"_system_post_cinit ()"的源  

    您能否简单解释其背后的原因、以及来自合规方的上述陈述是什么意思? 此说明有助于我更好地了解编译器、控制器和工具。 加上它可能帮助一些其他失去的灵魂在未来也是:D

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

    您好!

    Allison 将在1月初离开办公室、请期待延迟回复。

    此致、

    Ben Collier

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

    您好、UM、

    我想澄清的是、在实验课程说明中、用户明确表示需要单步执行代码、而不是按下"运行"按钮。 此实验旨在用作一个简单等式的逐步说明示例(无需外设活动等)。  

    如果您将此实验 C 代码与 C2000ware 中的其余示例进行比较、您将注意到所有 C2000ware 示例通常都在其 main()中进行器件/系统和外设初始化。 此实验没有这些初始化、因此我的假设是、当您按下运行按钮时、看门狗仍处于活动状态、并导致复位->器件会跳回 bootROM。

    [报价用户 id="635113" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1451670/tms320f28027-tms320f28027-c2000-lab-1-not-showing-variables-in-the-debug-window--using-launch-xl-tms320f28027f/5580302 #5580302"]没有可用于"C:\Users\owner\new_ws_1\lab1\Debug\lab1.out:{3}0x3ff5f5{4}"的"_system_post_cinit ()的源代码 [/报价]

    以上消息只是表示符号尚未加载、因此 CCS 无法向您显示源代码(无法找到访问源代码的位置)。 这是因为 CPU 已跳转到位于器件 BootROM 中的地址0x3ff5f5 (我们可以通过查看 F2802x 数据表中器件的"存储器映射"来判断)。 如果您想在 C 代码中准确地查看代码的位置、则需要加载符号。 当您访问上述消息时、系统可能会提示您选择"Locate File"选项-您可以单击此按钮以加载符号。 下面我将稍微展开一下:

    您可以通过将引导 ROM 符号(.out 文件)加载到器件来单步执行器件引导 ROM。  加载符号是一种有价值的调试方法。  此选项会添加生成的项目".out"文件中提供的符号以进行调试、而实际上并未通过 CCS 将".out"程序加载/编程到内核上-这就是您可以在引导 ROM 中使用此方法进行调试并获得可见性而无需更改程序中器件的当前状态的原因。 以下是从打开 CCS 的一开始加载引导 ROM 符号的步骤。 但是、如果从上面遇到编译器语句、可以跳转到 步骤5.  设置。

    1. 将 CCS 打开到工作区
    2. 点击"View">"目标配置":
    3. 您可以将此器件的工程导入 CCS 并使用该工程连接到器件、或在此窗口中将原始目标配置从 C2000Ware 复制到"用户定义的"目标配置。 无论通过哪种方式、均可查找器件目标配置(下面的 F28377D 示例)并启动:
    4. 当它打开调试窗口时、选择器件 CPU 并连接到目标:
    5. 导航至工具栏并单击按钮至"LOAD symbols"(加载符号)
    6. 加载 bootrom .out 文件。 对于该器件、它应位于 C2000ware 中。 例如、对于 F2802x:  
      1. C:\ti\c2000\C2000Ware_5_04_00_00\libraries\boot_rom\f2802x\v2_0\rom_sources\Release\TMS320x2802x_boot_rom_Gold_V200.out
      2. 如果弹出一个窗口、表明找不到源文件、可以选择"Locate File"并在 C2000Ware 中找到它
        1. 通常在此处为 C:\ti\c2000\C2000Ware_5_04_00_00\libraries\boot_rom\f2802x\v2_0\rom_source\source
    7. 该文件应打开以显示您所在的 Bootrom 位置、而您可以单步执行/调试

    此致、

    Allison