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/AWR1443BOOST:功率优化/电平感应演示、不允许使用断点

Guru**** 2587365 points
Other Parts Discussed in Thread: IWR1443, UNIFLASH

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/616864/rtos-awr1443boost-power-optimisation-level-sense-demo-not-allowing-breakpoints-to-be-used

器件型号:AWR1443BOOST
主题中讨论的其他器件:IWR1443UNIFLASH

工具/软件:TI-RTOS

您好!

我正在尝试液位传感演示并添加了断点、以查看物体与传感器之间的距离。 我使用 CCS_DEBUG_MSS 刷写了传感器、以便了解代码的工作原理。 代码在断点处为我提供一个距离值。 当我使用 CCS 执行 CPU 复位或重新启动调试、以便从我的传感器获取一个新的范围值时、我不会转到断点、而是停留在名为 idle.c 的文件中、其中代码被停留在 while 循环中。 是否有任何方法可以解决这个问题

非常感谢您的参与

/*demo.c 文件中位于 level_sense demo 目录中的断点*//

现在计算顶部 N 的距离。
for (idx = 0;idx < demo_NUM_results;idx ++)
{
results->distance [idx]=(float)((max_bin[idx])* DEMOCFG_RANGE_RES);//DEMOCFG_RANGE_RES
results->power_sqr[idx]= max_pow[idx];
} 

/*idle.c 文件*/

#include 

#include 

#include 
#include 

#include "package/internal/idle.xdc.h"

/*
=== idle_loop =====
//
空 Idle_loop (UArgarg1、UArgarg2)
{
while (true){
idle_run();
}
}

/*
=== idle_run ======
*/
void idle_run ()
{
int i;

if (BIOS_smpEnabled = true){
UINT CoreID = Core_getid();
对于(i = 0;i < Idle_funclist.length;i++){
if (idle_coreList.elem[i]=CoreID){
idle_funclist.elem[i]();
}
}

否则{
对于(i = 0;i < Idle_funclist.length;i++){
idle_funclist.elem[i]();
}
}

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

    您好、Saad、

    只是为了确认您遵循的是在 CCS 中调试代码的正确过程、当您说您使用 CCS_DEBUG_MSS.bin 刷写了 IWR1443传感器时、 我假设您还使用设计随附的 projectspec 或 makefile 为 MSS 编译了 CCS 输出文件、并执行以下步骤:

    使用 UNIFLASH 闪存 C:\ti\mmwave_sdk_01_00_00_05\packages/ti\utils\ccsdebug\xwr14xx_ccsdebug_mss.bin 来准备 EVM 以进行 CCS 调试。

    2.使用 tidcde2\level_sense demo\iwr1443中的 projectspec 为 MSS 编译 level_sense 演示 CCS out 文件(.xer4f)。

    3.移除 SOP2跳线、对电路板进行下电上电、然后将 R4F 目标连接到 CCS。

    4.将步骤2中的.xer4f 文件加载到 R4F 内核并开始调试。

    如果正确遵循上述过程、我相信您无法放置断点、因为 projectspec 中的默认编译器设置是为 O3优化而设置的、这将不允许您在代码上放置语句级断点。 您可以通过更改 projectspec 中的编译器选项来减少/删除优化、如下所示:

    请更改 compilerBuildOptions 以删除-O3标志或将优化级别降至-O1、然后重新生成.xer4f 文件并重试调试。

    此致

    尼廷