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.

[参考译文] TDA3MV:如何在运行时检查是否有调试器连接到 SoC?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/661077/tda3mv-how-can-i-check-at-runtime-if-there-is-a-debugger-connected-to-the-soc

器件型号:TDA3MV

您好!

像旧版 TI-DSP 一样、是否有一种简单的方法来检查是否有一个调试器连接到 SoC?

它应该通过使用 DSP 或 IPU 来工作。

我想实现一个函数、该函数仅在连接调试器时等待、这样我就可以通过使用调试器停止该系统、而不是在达到此点之前更轻松地在 Vision SDK 内部进行调试。

我应该像以下那样原则上工作:


(...)

int WaitForDebugFlag=true;

//如果调试器已连接,请仅等待她。 否则
//照常继续。 必须将 WaitForDebugFlag 设置为 false
//然后按 F6键继续。
while (IsDebugerConnected()&& WaitForDebugFlag)
   ;
(...)


请不要讨论其他调试方法! 我只知道、我为什么要用这种方式来实现它。



此致、

Guenter

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

    我已将您的问题转交给一位专家征求意见。

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

    你(们)好

    我不知道检查调试器是否已连接的任何函数。

    但我们在 VSDK 中有一些内置函数,有助于从开始(紧接在 main()之后)开始调试。

    在这里

    Int32 StartupEmulatorWaitFxn (空)

       volatile Int32 enableDebug = 0;
       操作
       {
       }while (enableDebug);
       返回 SYSTEM_LINK_STATUS_SOK;

    这段代码出现在每个 BIOS 内核中。 (例如 、对于 IPU1_0、其位于 MAIN_common_ipu1_0.c 中)

    对于计划在 启用调试配置文件的情况下进行调试和构建的内核、您需要修改可配置文件"enableDebug=1;"

    运行应用程序

    连接 CCS 后、将 enableDebug 的值修改为 0;由调试器从 while 循环中退出、直到该点执行将在 while 循环中完成

    检查这是否有帮助。

    请注意、在这种情况下、您需要重建代码

    此致、Shiju

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

    这正是我开始调试的方式。 但我的问题是、当连接调试器时、软件只会在调试开始点等待。

    从前我还记得(来自 C64x 系列)、可以检查特殊寄存器、该寄存器显示是否已连接调试器。

    似乎我必须找到另一种方法、即系统在未连接调试器时继续工作、因为我无法更改控制环路的标志。

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

    据我们所知、没有其他方法可以通过硬件寄存器来确定这一点。