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.

[参考译文] TDA2HV:如何在内核 M4上进行调试?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/964129/tda2hv-how-to-debug-at-the-core-m4

器件型号:TDA2HV
Thread 中讨论的其他器件:SYSBIOS

您好:

我使用的是 TDA2X,VSDK0205。文件"VisionSDK_SurroundView_DemoSetUpGuide.pdf"  (@page10):

"

6.在运行时,这些映像需要从 DDR 存储器转储
演示、使用以下步骤:
a.在调试模式下构建 IPU1_0的代码(通过 Rules.make 进行控制)
b.以正常方式运行演示
c.在函数内部的 return 语句中在 IPU1_0 CPU 上插入断点
文件中存在 SyncLink_makeCompositeBuffer ()
\vision_sdk_02_02_xx_xx\vision_sdk\src\links_common\sync-Link
_tsk.c
d.点击断点后、将 pSysCompBuf 拖动到 CCS 的监视窗口
e.检查 pSysCompBuf -> numFrames 的值。 如果不是4,那么就这么做吧
自由运行、直到它再次使用 pSysCompBuf 的值达到此断点
->数码相框为4。

"

在该示例中、断点显示在提示位置。 我是否需要首先下载".xa15fg.xem4.xe66"相关核心文件?
我是否需要为每个内核编辑.gel 文件?
我只下载了.xem4文件、无法停止到断点。 请告诉我此操作的详细步骤。THx!

 

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

    您好!

    我知道您要调试什么吗?

    您使用哪种引导模式? 是 SD 引导还是 QSPI 引导? 还是 CCS 启动?

    谢谢

    Gavitaju

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

    您好,

    我在我的 micro SD 卡上有一个 SBL_QSPI 文件。 这意味着 QSPI 模式吗?

    我正在使用 CCS6、可以通过删除.gel 文件来连接 M4和 C66内核。

    我想在 SyncLink_makeCompositeBuffer () @ipu1_0处设置断点,如何处理它? 谢谢!

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

    我有一个由前同事完成的 TDA2X 项目。 我将 App_be、MLO、SBL_QSPI、SVR_cfg、srv_OSD 这些文件复制到 SD 卡、然后在 PCB 上运行以显示图像。 图像正常。 现在、我要调试 ipu1_c0内核、在图像正常显示时连接仿真器、并下载相应的 vision_sdk_ipu1_0_debug.xem4文件。 仿真器将停止到 XDC_Runtime_error 位置。如何处理它?Thx!

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

    您好!

    1) 1)启动目标配置  

    2) 2)删除 M4内核的 GEL 文件、请参阅以下主题、了解如何删除 GEL 文件

    3) 3)连接 M4 IPU 内核

    4) 4)加载 IPU M4内核的符号

    5) 5)在源文件中放入断点、然后自由运行。

    请参阅以下链接、了解有关 CCS 的更多信息:

    谢谢

    加维拉尤

     

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

    您好、G 先生、

    当正常输出映像时、我按照您的步骤连接仿真器 xds110。 在 lanuch 之后、我删除了.gel、然后将.xem4下载到 M4内核(此过程是否需要首先连接到 A15?)、并在需要时设置断点。 但它无法运行到断点、它在 XDC_RUNITY_Error_setX_E 处停止、这是什么问题? 希望得到答案。

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

    您好!

    我能知道您是如何将.xem4下载到 M4的吗? 如果可能,请尝试附加图像。

    您是否能够在 SD 引导模式下运行用例而不会出现任何问题? (我是说不连接 CCS)

    谢谢

    加维拉尤

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

    您好!

    我使用 xds110将.xem4下载到 M4内核。 我的程序可以独立运行、而无需依赖仿真器。 图像可以正常显示。 SD 卡中有 App_be、MLO、srv_cfg 文件。 只需复制一次。 卸下 SD 卡、图像可以正常显示。

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

    您好、G 先生

    我使用 xds110将.xem4下载到 M4内核。 我的程序可以独立运行、而无需依赖仿真器。 图像可以正常显示。 SD 卡中有 App_be、MLO、srv_cfg 文件。 只需复制一次。 卸下 SD 卡、图像可以正常显示。 它仍然无法正常工作,在 XDC_ERROR 停止,您可以回答吗?

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

    您好!

    我能知道您是如何将.xem4下载到 M4的吗? 如果可能,请尝试附加图像。

    下载.xem4二进制文件时、有两个选项:

    1) 1)加载程序或加载二进制文件

    2) 2)加载符号

    您选择哪一个?

    谢谢

    加维拉尤

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

    您好!

    感谢您的回复。我选择了"LOAD PROGRAM ..."页面。

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

    您好!

    请勿选择加载程序选项。

    请尝试使用选项 Load symbols。

    谢谢

    加维拉尤

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

    感谢您的回复、我下载了符号、程序似乎可以运行。 但它似乎总是在_aeabi_fmul ()和 hwi 部分停止、并且没有进入 main_ipu1_0.c (断点)的 main ()

    已在此处设置)。 我向观察窗口添加了相关变量、但未显示。 这应该如何解决? 是否要修改路径? 此时图像仍正常显示。 期待您的回复、谢谢!

    或者停止了、这是什么问题?

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

    您好!

    >>>未输入 MAIN_ipu1_0.c 的 main()(此处已设置断点)。

    在 SD 和 QSPI 引导模式下、它不会从 IPU 的主函数启动、因为在电路板上电时、它将开始执行主函数中的代码、稍后我们将加载符号、此时、 主函数已执行。

    如果要从任何内核的主函数进行调试、请按照用户指南中给出的所有说明进行操作:

    文件:vision_sdk/docs/UserGuides/VisionSDK_UserGuide_TDA2xx.pdf (第3.8章使用 CCS 加载)

    谢谢

    加维拉尤

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

    我想像提到的文档(SyncLink_makeCompositeBuffer)一样运行到断点并捕获映像。 但始终停止到 ti_sysbios_hal_hwi_Handleti_sysbios_hal_hwi_create 或在 aeabi_fmul 附近。 我尝试过这几次。

    抱歉、问题出在哪里、我应该怎么做才能使其继续运行到"SyncLink_makeCompositeBuffer"位置?

    非常感谢!

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

    您好,G 先生

    我该怎么做才能防止他在这两个(ti_sysbios_hal_hwi_create、aeabi_fmul)位置停车?

    抱歉、问题出在哪里、我应该怎么做才能使其继续运行到"SyncLink_makeCompositeBuffer"位置?

    非常期待您的回复、谢谢您!

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

    您好!

    您是否正在尝试使用定制板或 EVM 板?

    谢谢

    加维拉尤

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

    我在前一位同事(已辞职)制作的产品上进行了调试。 我使用了 vsdk0205。 在 SD 卡中复制 AppImage 和 MLO 后、可以正常生成映像。 然后、我连接了 xds110并按照您所说的那样删除了.gel 文件。 将符号下载到 Ipu1_0、我希望运行到"SyncLink_makeCompositeBuffer"位置以获取缓冲区中的映像、但它将在"ti_SYSBIOS_hal_Hwi_cree"或"aeabi_fmul"停止。 如文档"VisionSDK_SurroundView_DemoSetUpGuide.pdf"中所述、我应该怎么做才能捕获图像。 感谢您的回答!

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

    您好、G 先生

    我的程序在"ti_sysbios_hal_hwi_creat"或"aeabi_fmul"停止。 如文档"VisionSDK_SurroundView_DemoSetUpGuide.pdf"中所述、我应该怎么做才能捕获图像。 感谢您的回答!

    期待您的回复!!!

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

    G 先生:

    图像正常显示。 然后我在仿真期间中断了 synclink_tsk.c 文件中 SyncLink_tskMain()函数中的断点。 也不能断开 chains_main_BIOS.c 文件的 chains_main()函数中的点,为什么它不能停止? 该函数是否循环调用? 是否有关于图像采集过程的任何说明?

    感谢您的回复、新年快乐!

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

    您好!

    >> 我的程序在"ti_sysbios_hal_hwi_creat"或"aeabi_fmul"停止。  

    上述问题已解决?

    您能否提及用例链? 只需确认链是否具有同步链接即可  

    谢谢

    加维拉尤

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

    您好!

    初始化的链如下所示:

    void ChainCommon_Init()

    Board_init();
    QSPI_NorFlash_Init();

    #ifdef ENABLE_UART
    System_uartInit();

    /*让其它处理器的打印完成后等待打印*/
    Task_sleep(100);
    #endif

    GrpxSrcLink_init();
    CANCtrlLink_init();

    ChainCommon_SetSystemL3DmmPri ();

    我的问题是、当仿真器已连接且图像正常输出时、如何中断(设置断点)图像处理部分。 我现在想打破周期函数(例如 CAN 传输)、但它无法在我想要的位置停止。 我应该怎么做? 谢谢!

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

    您好!

    您能否在设置断点的位置共享图像的屏幕截图?

    谢谢

    加维拉尤  

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

    您好,

    感谢您的回复、下面是我设置断点的位置的屏幕截图。

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

    您好!

    从图像中我知道您不是在设置断点、因为如果在源代码中设置了断点、那么我们应该看到以下符号。

    确保下载到 IPU 内核的符号是正确的还是不正确的。

    谢谢

    加维拉尤

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

    感谢您的回复,我可以成功地在 SyncLink_tskMain()位置设置断点,但仍然无法在 SyncLink_makeCompositeBuffer()位置设置断点。 它的颜色为灰色(请参阅下面的)、为什么是这样? 此外,根据 TI 的信息,如果我想获取屏幕截图,则必须位于"SyncLink_makeCompositeBuffer()"的位置。

    然后、我在上图中的1和2处点击了两个断点、发现它不能停止到2。 整个链路似乎没有运行(程序的状态为 system_link_state_created ==1)。 输出图像始终正常。原因是什么? 我应该在哪里参考这些信息以继续调试? 谢谢!

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

    您好!

    是否为源代码浏览或编辑代码而创建了任何 CCS 工程?

    谢谢

    加维拉尤  

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

    您好,

    我创建了一个.c CCS 工程、用于调试的.xem4文件都是由该工程生成的。

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

    您好!

    您应该在启动目标配置之前关闭.c CCS 项目、否则断点将不起作用。

    谢谢

    加维拉尤

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

    我没有关闭我的项目。 实际上、断点已经正常工作。 请参见下图。  

    现在、我的问题是:

    我在 下图中的1和2处点击了两个断点,发现它不能停止到2。 整个链路似乎没有运行(程序的状态为 system_link_state_created ==1)。 输出图像始终正常。原因是什么? 我应该在哪里参考这些信息以继续调试?  

    非常感谢!

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

    您好!

    断点有时会起作用、如果您使用的是.c CCS 项目和目标配置调试项目、某些中断将不起作用、因为源文件是互斥的、因此一次只能有一个项目可以访问源文件资源。

    建议您 在首次突破点后使用关键字 F6、这将逐行继续调试、

    F5 ->进入函数定义内部

    F6 ->以输入下一行

    F7 ->从函数中存在

    如果您不熟悉 CCS 的使用方法、我建议您访问以下链接、以便更好地了解 CCS

    谢谢

    加维拉尤