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.

[参考译文] CCS/AM3517:在 CCS 中调试 IAR 映像

Guru**** 2392025 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/611576/ccs-am3517-debugging-iar-image-in-ccs

器件型号:AM3517

工具/软件:Code Composer Studio

您好!

我尝试调试一个使用 C 源代码在 IAR 中构建的二进制文件。

是否可以查看源代码或仅查看汇编代码?

我首先在目标上加载并运行二进制文件(不使用 CCS)。

然后在 CCS 中、我选择(仅加载符号)。

我可以连接调试器、但我只能看到汇编代码。

在调试器窗口的"源代码"选项卡中、它显示"RTS 库-无法识别项目的编译器工具"

这是否意味着可以看到 C 源代码?

谢谢!
已运行

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ran、
    这是 ARM 目标上的支持。 请参阅以下视频:
    www.youtube.com/watch

    谢谢
    Ki
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我没有直接回答您问题的第二部分。 是的、支持 C 源代码级调试、如以上视频所示。 只要应用程序是使用调试符号构建的、调试器就可以找到源文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ki、

    非常感谢您的快速回复!

    我知道使用 CCS 可以进行 C 源代码调试。 我之前已经这么做了。
    但是、现在我尝试调试一个在另一个工具-IAR 中构建的二进制文件。

    我在"源"选项卡中看到以下消息:
    "RTS 库-无法识别工程的编译器工具"

    这意味着什么?

    谢谢、
    已运行

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

    很抱歉、我误解了您的问题。

    澄清:

    [引用 user="ranchu">我在"源"选项卡中看到以下消息:
    "RTS 库-无法识别工程的编译器工具"

    下面的屏幕截图是您所指的内容、对吧?

    该列表是调试器的源文件查找路径。 默认情况下、当在 RTS 代码中停止时、CCS 通常会添加 RTS 库源文件的路径。 它会尝试检测您使用的编译器、然后相应地调整该编译器版本的路径。 在您的情况下、它无法识别用于生成可执行文件的编译器工具、因此无法解析路径。 这是有道理的、因为您没有使用 CCS 识别的编译器(TI 或标准 GCC 编译器)。 因此、这是消息的含义。 在本例中、要调试 RTS 中的代码、您可以添加包含使用 IAR 构建 RTS 库时使用的 RTS 库源文件的路径。 这将允许调试器找到它。

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

    非常感谢。 现在、它的工作方式就像魔术一样。
    如果我可以提出以下问题,只是为了我的理解:

    "load image"选项意味着调试器将映像下载到目标存储器。
    但这意味着"只加载 symbold "是什么? 调试器(JTAG)是否将内容加载到目标存储器中?

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

    [引用 user="ranchu">但它意味着"仅加载 symbold "是什么? 调试器(JTAG)是否将内容加载到目标内存中?[/quot]

    "仅加载符号"只会将可执行文件的调试符号加载到调试器。 它不会向目标加载任何内容。

    通常只希望在调试已刷写到目标(或类似内容)的代码时加载符号。 无需将代码重新刷新到目标。 但是、您仍然需要将调试符号加载到调试器、以便具有适当的调试可见性(例如源代码行调试等)。

    谢谢

    Ki

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

    您好 Ki、

    非常感谢。

    最后一个,仅供我理解:

    在"调试配置"中的"加载选项"中

    "load program"-将符号加载到调试器并将程序加载到 RAM

    "仅加载符号"-将符号加载到调试器

    以上是否正确?

    再次感谢。

    已运行

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

    基本正确、但下面略有变化

    [引用 user="ranchu"]“加载程序”-将符号加载到调试器并将程序加载到 RAM 中?[/quot]

    加载程序会将符号加载到调试器、并将代码加载到 RAM 或片上闪存(对于大多数 MCU 器件)。  

    谢谢

    Ki