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.

[参考译文] RTOS/AWR1642BOOST:如何调试 MMW 演示的 CCS 程序?

Guru**** 2558250 points
Other Parts Discussed in Thread: AWR1443

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/630576/rtos-awr1642boost-how-to-debug-the-ccs-program-of-mmw-demo

器件型号:AWR1642BOOST
Thread 中讨论的其他器件:AWR1443

工具/软件:TI-RTOS

我想观察 数据流的中间结果。 在 CCS 开发模式下、我首先加载 C674x 程序,然后加载 CortexR4程序。

在数据流中放入断点后、首先运行 C674x 程序、然后运行 CortexR4程序、并通过毫米波演示可视化工具将 CLI 配置发送到毫米波器件。

首先,progaram 将在断点处停止,但 CortexR4程序将错误退出。

然后 依次运行 C674x 程序,C674x 程序也存在错误。

总之、我想 逐步调试 MMW 演示程序以及如何执行?

控制台显示为以下:

[C674x_0]调试:记录 UART 实例@00815560已成功打开
调试:DSS 邮箱句柄@0080f550
调试:MMWDemoDSS 创建事件句柄成功
调试:MMWDSS DemommWave Control 初始化成功
调试:MMWDemoDSS ADCBUF 实例(0)@00815530已成功打开
调试:MMWDemoDSS 数据路径初始化成功
调试:MMWDemoDSS initTask 退出
[CortexR4_0]
调试:启动毫米波演示
(小部分
调试:MMWDemoMSS 启动了初始化任务
调试:MMWMSS DemommWave Control 初始化成功
调试:CLI 可用
传感器已停止
调试:MMWDemoMSS 接收到 CLI sensorStart 事件
[C674x_0]堆 L1:大小16384 (0x4000)、空闲2816 (bb00)
堆 L2:大小49152 (0xc000),免费35592 (0x8b08)
堆 L3:大小655360 (0xa0000)、空闲507904 (0x7c000)
[CortexR4_0] xdc.runtime.Main:"platform/mmwave_xwr16xx.c"、第1089行:断言失败
xdc.runtime.Error.raise:终止执行
[C674x_0]{MODULE#8}:"./dss_main.c"、第264行:错误{id:0x10000、args:[0x8139d4、0x8139d4]}
xdc.runtime.Error.raise:终止执行

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您在 frameCfg 的"帧数"中设置了什么? 您是否将其设置为0 (无限)?

    -Raghu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Raghu、
    此客户希望在 CCS 中验证自己的信号处理算法(CFAR)。
    他在 SDK 中使用开箱即用演示、无需进行任何修改即可进行测试。
    他可以成功加载 C674x 和 R4F 程序、并且程序可以成功运行。

    然后、在 C67's dssDataPathProcessEvents (例如:dss_main.c ->第1526行:MmwDemo_interFrameProcessing (dataPathObj);)中设置断点、并使用 CLI 命令设置参数、然后启动传感器。
    程序可以在此行处停止、但如果我继续运行程序、CCS 将给出如下所示的错误。

    [C674x_0]{MODULE#8}:"./dss_main.c"、第264行:错误{id:0x10000、args:[0x8139d4、0x8139d4]}
    xdc.runtime.Error.raise:终止执行

    如何在 CCS 中避免此错误并调试信号处理数据路径?
    您能否提供一些有关调试信号处理数据路径的提示?
    谢谢。

    Ragards、
    Wesley。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、将其设置为0 (无限)。 我可以使用 AWR1443进行分步调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    在 MMW 演示的许多点应用中、应用程序会检查特定数据是否以令人震惊的方式到达、这些数据可能包括线性调频脉冲、帧错误/计数或 FFT 处理事件/状态。 如果其中任何一个与通过标准不匹配、则应用程序会达到断言失败条件并终止执行。

    在您的情况下、您可能会在器件开始线性调频脉冲后到达的位置(即 POST sensorStart 命令)放置断点、并且由于上述检查、执行正在终止。


    要执行这些断言检查、您需要将'packages/ti/common/mmwave_sdk.ma'文件修改为 C674_CFLAGS 和 R4F_CFLAGS 编译器标志的未定义'DebugP_assert_enabled'宏。

    对该文件进行后修改、编译 mmw 演示应用程序并尝试使用 CCS。


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

    Jitendra、

    出于好奇、当您取消定义"DebugP_assert_enable"并长时间暂停(即、比单个帧长的数量级)时、雷达子系统的稳定性和后续数据收集完成事件(例如线性调频脉冲/帧事件)会发生什么情况。

    系统是否仍然足够稳定、以便在调试器中恢复执行、收集新的 ADC 数据并在发生线性调频脉冲和帧事件期间对其进行处理?

    谢谢、
    Erik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Erik、
    通过 JTAG/调试器停止器件不会影响器件线性调频脉冲(HW 级别)、但在软件中、它可能会影响 DSP 的处理。 假设如果您停止 DSS、则它将落后于器件线性调频脉冲事件、并且当您重新开始执行时、它可能从最后几帧或接下来几帧的某个数量的线性调频脉冲开始、即 DSP
    将与帧/线性调频脉冲事件不同步、并且处理输出可能与预期结果不一致。
    但调试器停止不会影响 ADCBuffer 数据填充事件和线性调频脉冲/帧硬件中断。

    因此、在 SDK 演示的调试模式下执行步骤将影响整个演示(MSS 和 DSS)执行流程。

    运行时您可以放置断点来检查一些中间缓冲区/变量/FFT-outputs。


    我的最后一个帖子中添加了其他内容-

    对"packages/ti/common/mmwave_sdk.ma"进行后期修改以取消定义宏编译"驱动程序/osal"库、然后清理并编译演示应用程序以使用 CCS 进行调试。


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

    感谢 Jitendra、

    您能否确保我正确理解此陈述:

    [引用 USER="Jitendra Gupta"]假设如果您停止 DSS、它将落后于器件线性调频脉冲事件、并且当您重新启动执行时、它可能从最后几帧或接下来几帧的某个数量的线性调频脉冲开始、即 DSP
    将与帧/线性调频脉冲事件不同步、并且处理输出可能与预期结果不一致。 [/报价]

    由于"obj->chirpCount"现在相对于雷达子系统的线性调频脉冲处于未知状态、DSP 是否会与帧/线性调频脉冲事件不同步? 由于"obj->chirpCount"只是对线性调频脉冲进行计数、实际上不知道帧何时结束、它可能会认为帧已完成、因为它计数了足够的线性调频脉冲事件、但实际上雷达子系统仍处于帧的中间。

    此外、要在.mak 文件中取消定义 DebugP_ASSERT_ENABLED、我们是否只需删除设置此标志"--define=DebugP_ASSERT_ENABLED"的所有行?

    此致、
    Erik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我只需‘C674_CFLAGS 和 R4F_CFLAGS 编译器标志的'--define=DebugP_ASSERT_ENABLE'宏。 清理并构建 MMW 演示,但将发生相同的错误。

    我只是想逐步调试这个演示、您能告诉我一些具体的细节吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Erik、

    是的、如果您停止 DSP、则与硬件线性调频脉冲/帧计数相比、线性调频脉冲/帧数可能不同步。 "obj->chirpCount"将滞后于 HW 线性调频脉冲计数、因此当您再次停止 DSP 内核时、基于此"obj->chirpCount"、它可能会假设帧结束、但实际上在 HW 上、chirpCnt 将成为接下来几个帧的一部分、并且可能位于 b/w 帧中。

    若要取消定义、您可以从.mak 文件中删除该"--define=DebugP_assert_enable"。


    此致、
    Jitendra