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.

[参考译文] 编译器/IWR6843ISK-ODS:IWR6843ISKODS:如何在控制台启用 gtrack_log 函数日志

Guru**** 2574135 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/894404/compiler-iwr6843isk-ods-iwr6843iskods-how-to-enable-gtrack_log-function-logs-to-the-console

器件型号:IWR6843ISK-ODS
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI C/C++编译器

尊敬的 TI 团队:

我们正在应用中使用 IWR6843ISKODS + MMWAVEBOOST。 我们将使用 68xx_sense 和_direct_hvac_Control  演示。 我们希望启用 g_track 模块中的日志以在控制台上打印。

我们发现 g_track 模块已经有一个日志函数  gtrack_log()

已启用#ifdef GTRACK_LOG_ENABLED
    if (inst->verbose & verbose_warning_info)
       gtrack_log (GTRACK_verbose_warning、"帧#%llu、%u 目标、%HU 测量值\n"、inst->heartbeat, gtrack_listGetCount (&inst->activeList)、mNum);
#endif

热衷于学习如何使用  gtrack_log() 函数在 UART 控制台启用 gtrack 模块中的日志

请就此提供帮助

此致

Sudharshan

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

    您好、Sudharshan、

    如果只想打印到 UART,则需要为 gtrack 模块提供 UART 句柄,然后使用 UART_write()函数。 如果要写入 CCS 调试控制台、可以使用 System_printf (确保包含 system.h)。  

    内部开发人员使用了 Grack_log、您将无法完全访问它。

    此致、

    Justin

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

    您好 Justin、

    >>>如果只想打印到 UART,则需要为 gtrack 模块提供 UART 句柄,然后使用 UART_write()函数

       您能不能为此提供一些参考代码片段。 uart0和1已用作命令和记录 UART 句柄。

    我正在将项目 68xx_sense 和_direct_hvac_Control  演示从工业工具箱演示导入到工作空间中。 我想在 gtrack_step()函数中添加一些调试打印。 但我无法在工作空间中找到 gtrack_step 函数的源代码。 我在 MMWAVE_SDK 中找到了该函数源。

    如何在 MMWAVE_SDK 中为同一函数添加列印。 如何编译它以使更改对当前项目有效。

    请帮助您如何在 gtrack_step()中将一些调试打印添加到 UART 中?
    您可以分享上述参考代码片段吗?

    谢谢

    Sudharshan

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

    您好、Sudharshan、

    该器件只有两个可用的 UART、因此您必须使用其中一个。 可以使用命令 UART。 您可以在 task_mbox.c 中看到 UART_WRITE 示例

    GTrack 源位于实验室文件夹中- /labs/people_counting/68xx_Sense_and_Direct/src/mss/gtrack.

    GTrack 有一个 makefile、您可以使用此文件重新编译它。 SDK 用户指南(用于 SDK 演示)中的编译说明也适用于 GTrack。 通常、将 gtrack 文件夹粘贴到 SDK 最简单、因此您不必更改 setEnvironment 脚本中的所有路径。  

    确保在重新编译 gtrack 时、将库文件放置在正确的位置。 这位于实验的 gtrack 文件夹中。 您可以在 CCS->properties 的链接器选项卡中查看这是如何链接的。  

    此致、

    Justin

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

    您好 Justin、

    请帮助您如何在中构建/重新编译 gtrack 模块  在源文件中进行一些更改后访问/labs/people_counting/68xx_Sense_and_Direct/src/mss/gtrack。

    我已经检查了 gtrack 句柄结构、但在该结构中找不到 UART 句柄的任何成员?
    我们是否需要通过添加 uarthandle 成员来修改此结构?

    谢谢

    Sudharshan

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

    您好、Sudharshan、

    gtrack 中不存在 UART 句柄-您必须添加它。

    编译 gtrack:

    1.将 gtrack 文件夹复制到 SDK 算法 文件夹。 (C:\ti\mmwave_sdk_03_03_00_03\packages/ti\ALG)

    2.将 setenv.bat 和 checkenv.bat 从 Scripts 文件夹(C:\ti\mmwave_sdk_03_00_03\packages/scripts\windows)复制到 gtrack 文件夹

    3.运行 setenv.bat

    4.运行 gmake all

    此致、

    Justin

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

    您好 Justin、

    我在 gtrack 模块中进行了以下更改、以添加对使用 UART 的日志的支持。

    diff --git a/src/gtrack_step.c b/src/gtrack_step.c
    索引 ceef058.4a186e3 100644
    -- a-src/gtrack_step.c
    ++ b/src/gtrack_step.c
    @@-39、6 + 39、7 @@
    #include
    #include
    #include
    +#include
    #include
    #include

    @@-82、7 +83、7 @@
    *无
    *

    -void gtrack_step (void *句柄、GTRACK_measurePoint *点、GTRACK_measurement_vector * var、uint16_t mNum、GTRACK_targetDesc * t、 uint16_t * tNum、uint8_t * mIndex、uint8_t * uIndex、uint32_t *工作台)
    +void gtrack_step (void *句柄、UART_Handle 命令 UartHandle、void * GTRACK_measurePoint *点、GTRACK_measurement_vector * var、uint16_t mNum、 GTRACK_targetDesc * t、uint16_t * tNum、uint8_t * mIndex、uint8_t * uIndex、uint32_t *工作台)

    GrackModuleInstance *安装;
    uint16_t n;
    @@-99、6 + 100、7 @@ void gtrack_step (void *句柄、GTRACK_measurementPoint *点、GTRACK_measuremen
    if (inst->verbose & verbose_warning_info)
    gtrack_log (GTRACK_verbose_warning、"帧#%llu、%u 目标、%HU 测量值\n"、inst->heartbeat, gtrack_listGetCount (&inst->activeList)、mNum);
    #endif
    + UART_WRITE (命令 UartHandle、"Testing the UART log"、sizeof ("Testing the UART log"));

    if (mNum > inst->maxNumPoints)
    mNum = inst->maxNumPoints;
    diff --git a/gtrack.h b/gtrack.h
    索引05b43c0..336e8fd 100644
    ---- gtrack.h
    ++ b/gtrack.h
    @@@@-113,6+113,7m Ω

    #include
    #include
    +#include

    #ifdef __cplusplus
    extern "C"{
    @@-605、7 +606、7 @@ typedef 结构体
    } GTRACK_targetDesc;

    extern void * gtrack_create (GTRACK_moduleConfig *配置、int32_t *错误代码);
    extern void gtrack_step (void *句柄、GTRACK_measurePoint *点、GTRACK_measurement_vector * var、uint16_t mNum、GTRACK_targetDesc * t、 uint16_t * tNum、uint8_t * mIndex、uint8_t * uIndex、uint32_t *工作台);
    +extern void gtrack_step (void *句柄、UART_Handle 命令 UartHandle、GTRACK_measurePoint *点、GTRACK_measurement_vector * var、uint16_t mNum、 GTRACK_targetDesc * t、uint16_t * tNum、uint8_t * mIndex、uint8_t * uIndex、uint32_t *台式);
    extern void gtrack_delete (void *句柄);

    /*为实时配置添加*/

    当我尝试使用 gmake all 编译 gtrack 模块时、我收到以下错误

    SHMEM_ALLOC 被设定为0x00000006
    使-s MMWAVE_SDK_LIB_build_option=2D gtracklib
    SHMEM_ALLOC 被设定为0x00000006
    [R4器件/类型:iwr68xx/xwr68xx]生成文件:src/gtrack_step.c
    "src/gtrack_step.c"、第86行:错误:预期值为")"
    "src="/gtrack_step.c"、第86行:错误:声明与"void gtrack_step (void *、UART_Handle、GTRACK_measurePoint *、GTRACK_measurement_vector *、uint16_t、 GTRACK_targetDesc *、uint16_t *、uint8_t *、uint8_t *、uint32_t *)"(在"/home/sudha/ti/mmwave_sdk_03_03_00_03/packages/ti/alg/gtrack/gtrack.h "的第609行声明)
    "src="/gtrack_step.c",第101行:错误:标识符"mNum"未定义
    "src/gtrack_step.c"、第118行:错误:标识符"point"未定义
    "src/gtrack_step.c"、第153行:错误:标识符"bench"未定义
    "src/gtrack_step.c"、第159行:错误:标识符"point"未定义
    "src="/gtrack_step.c",第163行:错误:未定义标识符"var"
    "src/gtrack_step.c"、第165行:错误:标识符"t"未定义
    "src="/gtrack_step.c",第165行:错误:标识符"tNum"未定义
    "src/gtrack_step.c"、第171行:错误:标识符"point"未定义
    "src="/gtrack_step.c",第173行:错误:未定义标识符"var"
    "src/gtrack_step.c"、第174行:错误:标识符"t"未定义
    "src="/gtrack_step.c",第174行:错误:标识符"tNum"未定义
    "src="/gtrack_step.c",第178行:错误:标识符"uIndex"未定义
    "src/gtrack_step.c"、第187行:错误:标识符"mIndex"未定义
    在"src/gtrack_step.c"的编译中检测到15个错误。

    >>编译失败
    ./../common/mmwave_sdk.mak:281:目标'obj_xwr68xx2d/gtrack_step.oer4f'的配方失败
    maked[1]:***[obj_xwr68xx2d/gtrack_step.oer4f]错误1.
    gmake:***[lib]错误2.

    我在 MSS 模块中添加了以下更改、以将 UART 句柄发送到 gtrack 模块

    diff --git a/sense 和_direct_68xx_MSS/task_app.c b/sense 和_direct_68xx_MSS/task_app.c
    索引 b463927..58bb83f 100644
    --- a/sense 和_direct_68xx_MSS/task_app.c
    ++ b/sense 和_direct_68xx_mss/task_app.c
    @@-242、10 +242、10 @@ void MmwDemo_appTask (UArg0、UArgarg1)

    //执行跟踪
    #IF (已定义(GTRACK_2D))||(已定义(GTRACK_3D))
    - gtrack_step (gMmwMssMCB.gtrackHandle、points、0、mNum、targetDescr、 &tNum、targetIndex->index、&targetIndex->index[gMmwMssMCB.cfg.trackingCfg.config.maxNumPoints]、基准);
    + gtrack_step (gMmwMssMCB.gtrackHandle、gMmwMssMCB.commandUartHandle、points、0、mNum、 targetDescr、&tNum、targetIndex->index、&targetIndex->index[gMmwMssMCB.cfg.trackingCfg.config.maxNumPoints]、基准);
    其他
    差异=空;
    - gtrack_step (gMmwMssMCB.gtrackHandle、点、方差、mNum、targetDescr、 tNum,targetIndex->index,基准);
    + gtrack_step (gMmwMssMCB.gtrackHandle、gMmwMssMCB.commandUartHandle、点、方差、mNum、 targetDescr、&tNum、targetIndex->index、Benchmarks);
    #endif

    对于(n=0;n <tNum; n++) {

    您能否帮助解决编译包含更改的 gtrack 模块时出现的问题?

    您能否查看 MSS 模块中的更改?

    谢谢

    Sudharshan

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

    您好、Sudharshan、

    您可能需要检查代码更改- gtrack_step 未正确定义、并且可能存在语法错误。

    我认为最好将 uartHandle 发送到 gtrack_create 的 gtrack 模块、这样您只需执行一次。 uartHandle 不应改变、因此一旦 gtrack 有指针、您就可以开始了。

    此致、

    Justin

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

    您好 Justin、

    我按照您的建议进行了以下更改。

    diff --git a/src/gtrack_create.c b/src/gtrack_create.c
    index 3b8b07d.d9ff3f3 100644
    -- a/src/gtrack_create.c
    ++ b/src/gtrack_create.c
    @@-40、6 +40、7 @@
    #include 
    #include 
    
    +#include 
    #include 
    #include 
    
    @@-117,6+118,7m @@ void *gtrack_create (GTRACK_moduleConfig *config、Int32_t *errCode)
    ->maxNumTracks = config->maxNumTracks;
    
    inst->Heartbeat = 0U;
    +->commandUartHandle = config->commandUartHandle;
    
    /*默认参数*/->params.gatingParams
    = defaultGatingParams;
    diff -git A/src/gtrack_step.c b/src="/gtrack_step.c
    index ceef058..ef5cb60 100644
    -- a/src/gtrack_step.c
    ++ b/gtrack_step.c *
    @@、gtrack_measure_gstep.c *、@@*、g4、gstep_g4、gr、gtrack_step.c、g4、gr、gtrack_gine.c、gtrack_measurestep.c、g4、gr、gtraine_gr
    Inst =(GrackModuleInstance *) handle;
    
    inst->heart++;
    + UART_write (inst->commandUartHandle、"Testing the UART log"、sizeof ("Testing the UART log"));
    
    #ifdef GTRACK_log_enabled
    if (inst->verbose & verbose_warning_info)
    - gtrack_int.h gtrack_int.h -git/exclude/e+
    
    gtrack_int.h–包含
    gtrack_int.h
    
    ––848/28348 @@、000+ e+@@ 
    
    #include "gtrack_listlib.h"
    +#include 
    
    #define GTRACK_Nominal allocation_range(6.0f)/*分配 SNR 缩放范围*/
    
    @@-382,6+383,7 @@ typedef struct{
    uint32_ttargetNumTotal;
    //uint16_t
    targetNumCurrent;
    + UART_Handle 命令 UartHandle;
    
    }GrackModuleInstance;
    
    diff --git A/gtrack.h b/gtrack.h
    index 05b43c0..2520cdb 100644
    ---- gtrack.h
    ++ b/gtrack.h
    @@-113-6 @@@
    
    包括#113-7 
    #include 
    +#include 
    
    #ifdef __cplusplus
    extern "C"{
    @@-547、6 +548、7 @@ typedef 结构
    
    /**@简要高级参数,默认设置为 NULL */
    GTRACK_advancedParameters * advParams;
    + UART_Handle 命令 UartHandle;
    
    }GTRACK_moduleConfig;
    diff - git a/sense_and_direct_68xx_ms/task_app.c b/sense_and_direct_68xx_MSS/task_app.c
    INDEX b463927.4b.4b_task_b_644+_task_task_train/tag32_tor_mbr_tor_task_tor_m7++_task_tag_tor_tor_m7++_mag32_task_tag_mbr_task_tor_tag_m7+++++++_mag_task_task_tag_mag_m644++++_
    
    
    @@@@
    if (gMmwMssMCB.gtrackHandle!=空)
    gtrack_delete (gMmwMssMCB.gtrackHandle);
    
    + config.commandUartHandle = gMmwMssMCB.commandUartHandle;
    gMmwMssMCB.gtrackHandle = gtrack_create (&config、&errCode);
    if (gMmwMssMCB.gtrackHandle = NULL){
    System_printf ("错误:无法为 Tracker 分配内存\n");
    

    但在编译期间、我会遇到以下错误
    但库是构建的

    /home/sudha/ti/bios_6_73_01_01/packages/ti/sysbios/family/arm/a15/TimestampProvider_asm.asm
    arer4ft BIOS.obj arm_IntrinsicsSupport_asm.obj arm_TaskSupport_asm.obj vim_hwi_asm.obj vim_hwi_asm_switch.obj exc_exception_asm.obj tms570_Core_asm.obj a15_TimestampProvider_as.obj……
    gmake[1]:离开目录`/home/sudha/ti/mmwave_sdk_03_03_00_03/packages/ti/alg/gtrack/test/usecases/mss/mss_configPkg_xwr68xx/package/cfg/mss_per4ft.src/sysbios
    已完成库构建。
    clel4ft 封装/cfg/MSS_per4ft.c……
    已完成软件包配置

    [R4器件/类型:iwr68xx/xwr68xx]生成文件:test/usecases/MSS/main_MSS.c
    [R4器件/类型:iwr68xx/xwr68xx]生成文件:test/common/gtrackApp.c
    [R4器件/类型:iwr68xx/xwr68xx]生成文件:test/common/gtrackAlloc.c
    [R4器件/类型:iwr68xx/xwr68xx]生成文件:test/common/gtrackLog.c

    "test/usecass/MSS_gtrack_linker.cmd"、第11行:警告#10068-D:无匹配段
    "test/usecass/MSS_gtrack_linker.cmd"、第12行:警告#10068-D:无匹配段

    未定义的首次引用
    符号
    ------ --------
    UART_WRITE lib/libgtrack2d.aer4f

    错误#10234-D:未解析的符号仍然存在
    错误#10010:链接期间遇到错误;未构建"test/usecases/MSS/xwr68xx_gtrack2D_usecase_MSS.xer4f"

    >>编译失败
    测试/用例/MSS/gtrackTestMss.mak:65:目标'gtrackTestMss'的配方失败
    maked[1]:***[gtrackTestMss]错误1.
    gmake:***[test]错误2.

    请帮助解决此问题。

    我正在附加完整的 gtrack 构建日志

    e2e.ti.com/.../TI_5F00_reply.txt

    请帮助解决此问题

    谢谢
    Sudharshan

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

    您好、Sudharshan、

    对迟交的答复表示歉意。

    我们已从官方版本中删除了测试文件、但尚未删除对其进行编译的调用。 在顶级 make 文件中,删除对 testfiles 的任何引用。 应对其进行修改、以便 gmake all 只执行  

    glacklib2d (R4F)

    glacklib2d (C674x)

    glacklib3d (R4F)

    glacklib3d (C674x)

    此致、

    Justin

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

    您好 Justin、

    感谢您的支持。 我们能够通过 UART 发送日志。 但在显示少量日志后、系统将挂起