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.

[参考译文] AWR2944EVM:用于调试日志的 kernel_DPL_debug API &'s 和 assert_#39;s

Guru**** 2451970 points
Other Parts Discussed in Thread: AWR2944EVM, AWR2944

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1508481/awr2944evm-kernel_dpl_debug-apis-for-debug-log-s-and-assert-s

器件型号:AWR2944EVM
主题: AWR2944中讨论的其他器件

工具/软件:

您好、

我们使用该DebugP_log函数在 CCS 控制台中记录消息、但它会在运行一段时间后停止输出任何信息。

它 在 MSS 侧工作正常、但 DSS 侧遇到问题。

DebugP_log功能是否有任何设置、例如日志缓冲区或其他配置?

谢谢

BRS

Bruce

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

    您好 Bruce、

    理想情况下、我们不会在长时间运行测试用例中使用 CCS 上打印的 DebugP_LOG 函数。
    理想情况下、我们遵循以下两种方法之一:
    a)具有专门用于此目的的存储器、并根据应用程序和跟踪状态更新值
    b)通过 UART 注销、并检查 TeraTerm 等工具上的输出。

    我们在任何场景中都不会将其用于长期测试。 如果存在限制、则可能是对 CCS 内部缓冲区和一些内部机制的限制。
    但理想的情况是将 UART 用于这些类型的调试。

    此致、
    Saswat Kumar

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

    尊敬的  Saswat :  

     如何调试 DSS 代码流?

     您能给我们提供一个 DSS 调试示例吗?

    谢谢

    BRS

    Bruce

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

    您好 Bruce、

    同样、您可以启用 UART 和日志以进行外部访问、也可以设置专用存储器来记录它。

    此致、
    Saswat Kumar

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

    尊敬的  Saswat:

      如何 通过 UART 在 DSS 端打印日志? 您有指南吗?

    谢谢。

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

    您好 Bruce、

    您可以转至 SDK 中的 examples\drivers\uart、应该有设置 DSS UART 的参考。

    此致、
    Saswat Kumar

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

    尊敬的  Saswat:

     有关从 UART 输出 DSS 日志的更多问题。

     1.在 AWR2944EVM 中、似乎没有直接输出 DSS 日志的硬件组件(如 USB 端口)。 是否使用 XDS USB 输出 DSS 日志?

      这是 dss.syscfg 和 mss.syscfg 中的当前 UART 设置。 是否应该修改 dss.syscfg? 如果是、您能否帮助提供正确的设置?


    dss.syscfg

    mss.syscfg

    谢谢。

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

    尊敬的用户:

    请给我一天或两次时间来检查并回复您。

    此致、
    Saswat Kumar

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

    尊敬的用户:

    根据我与团队检查过的内容、对于使用 DSS_UART、您需要通过硬件修改引出 UART 引脚。
    如果这对您来说不可能、我建议您尝试保留它的存储器日志。 如果您要使用 UART、另一种选择是您可以与 MSS 交换该消息、然后通过 MSS_UART 进行流式传输

    此致、
    Saswat Kumar

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

    尊敬的 Saswat:

      如果您要使用 UART、另一种选择是您可以与 MSS 交换该消息、然后通过 MSS_UART 进行流式传输

      =>您是否有任何示例代码?

    谢谢。  

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

    尊敬的用户:

    在 AWR2944的演示应用中、您可以发现我们将目标数据从 DSS 发送到 MSS、然后通过 UART 进行流式传输。 您可以引用代码的这一部分。
    您可以参考函数 DPM_sendresult 和来自 MSS 的 UART 传输。

    此致、
    Saswat Kumar

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

    尊敬的 Saswat:

     您可以参考函数 DPM_sendresult 和来自 MSS 的 UART 传输。

     =>您的意思是我可以使用 DPM_sendresult () API 来发送 DSS 日志吗?

    /**
    *@b 描述
    *@n
    *该函数用于将处理链结果发送到
    *远程 DPM 实体。 此功能仅适用于
    *远程和分布式域。
    *
    *标志"isAckNeeded"可以设置,这将导致
    *当对等域有时发送到报告的 DPM 框架
    *已收到有关结果可用性的通知。 这很有用
    *和可用于确保结果缓冲区不是
    *被重复使用
    *
    *\ref DPM_Report_Notify_DPC_Result_acked
    *
    *@param[in] handle
    * DPM 模块的手柄
    *@param[in] isAckNeedededed
    *表示之后是否需要确认的标志
    *结果已传递给远程 DPM 实体。
    *@param[in] ptrResult
    *要发送的分析结果
    *
    *\ingroup DPM_EXTERNAL_FUNCTION
    *
    *@重估
    *成功- 0
    *@重估
    *错误-@引用 DPM_ERROR_CODE 之一
    */
    int32_t DPM_sendResult

    (
    DPM_Handle 手柄、
    Bool isAckNeeded、
    DPM_Buffer* ptrResult
    )

    谢谢。

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

    尊敬的用户:

    否、它会将内容发送到 MSS、它需要该功能在 MSS UART 上将内容流式传输出去
    这就是为什么我提到,记忆将更容易保持它的跟踪,而不是走这条路由。

    此致、
    Saswat Kumar

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

    尊敬的  Saswat:

     您能否提供有关内存 方法的更多详细信息? 如何 实现?

    谢谢。

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

    尊敬的用户:

    您可以选择 MSS 中未使用的存储器、从 DSS 写入它并通过 MSS_UART 流式传输该存储器。

    令人遗憾的是、
    Saswat Kumar

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

    尊敬的 Saswat:

    您可以选择 MSS 中未使用的存储器、从 DSS 写入它并通过 MSS_UART 流式传输该存储器。

    ==>您是指如下示例代码所示的概念吗?

    1.在 DSS 和 MSS 中声明一个内存块。

    /*! 用于处理结果的 HSRAM */
    #pragma DATA_SECTION (gHSRAM、".demoSharedMem");
    #pragma DATA_ALIGN (gHSRAM、64U);

    2.将 DSS 日志消息复制到 DSS 部分中的 HSRAM

    if ((RetVal = MmwDemo_copyResultToHSRAM (&gHSRAM、Result、&gMmwDssMCB.dataPathObj.subFrameStats[Result->subFrameIdx])>= 0)

    3.在 DSS 部分中执行 DPM_sendResult。

    retVal = DPM_sendResult (gMmwDssMCB.dataPathObj.objDetDpmHandle、TRUE、&resultBuffer);

    4.通知 MSS 从 HSRAM 复制日志

    案例 DPM_Report_Notify_DPC_Result:

    /********************************************************************************
    *数据路径已完成帧处理,结果已报告
    ************************************************************************** /

    DPC_Objectt Detection_Execute、ResultExportedInfo exportInfo;
    int32_t retVal=0;


    /*重置帧数据处理标志、在实际流式传输完完整的 OBJ 数据后设置*/
    gMmwMssMCB.stats.isLastFrameDataProcessed = false;
    memcpy ((void *)(&gMmwMssMCB.ptrResult)、(void *) arg0、sizeof (DPM_Buffer);
    exportInfo.subFrameIdx =((DPC_Objectt Detection_Execute *) gMmwMssMCB.ptrResult.ptrBuffer[0])->subFrameIdx;
    /*处理结果后向数据路径发送通知*/
    RetVal = DPM_ioctl (gMmwMssMCB.objDetDpmHandle、
    DPC_OBJDET_IOCTL__DYNAMIC_EXECURE_RESULT_EXPORTED、
    导出信息(&E)
    sizeof (DPC_Objectt Detection_Execute、ResultExportedInfo);
    if (RetVal < 0){
    TEST_PRINT ("错误:DPM DPC_OBJDET_IOCTL__DYNAMIC_EXECURE_RESULT_EXPORTED 失败[错误代码%d]\n"、RetVal);
    CLI_WRITE ("FIH_Debug:错误:DPM DPC_OBJDET_IOCTL__DYNAMIC_EXECURE_RESULT_EXPORTED 失败[错误代码%d]\n"、
    retVal);
    MmwDemo_debugAssert (0);
    }
    /*向 UART 任务发送信号以传输数据*/
    Semaphorep_post (&gMmwMssMCB.UartExportSemHandle);
    }

    5.将 DSS 日志输出到 UART。

     cli_write ("DSS 日志:%s\n"、消息);

    谢谢。

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

    尊敬的 Saswat:

     你有任何反馈吗?

    谢谢。

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

    尊敬的用户:

    这可能是一种方法。
    否则可以有另一种更简单的方法

    1)向 MSS/DSS 写入通用存储器、例如从 DSS 侧写入 L3空空间(直接寄存器写入)
    2)参考 UART 示例应用、那么源应该是这个公共存储器

    此致、
    Saswat Kumar