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.

[参考译文] 编译器/TDA2EVM5777:__func__处理器常量返回 VPS_printf 中的垃圾值

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/661725/compiler-tda2evm5777-__func__-processor-constant-returns-garbage-values-in-vps_printf

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

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

我创建了使用传统 makefile (CCS 之外)构建的库。 将处理器常量__func__传递到 VPS_printf。
问题是 UART 控制台中的实际输出显示了__func__中的垃圾值。

我从以下文章中阅读了以下关于需要在 CCS 中的编译器选项中添加--relaxed_ansi 的文章:
https://e2e.ti.com/support/development_tools/compiler/f/343/t/158451

但是、由于我的库是使用传统 makefile 文件(CCS XDC 之外)构建的、我想问一下如何启用-relaxed -ansi?

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

    你好、Norman San、

    是否要将此选项添加到 VSDK 应用程序或库中?

    此外、我知道您的库是基于 A15构建的、因此您想将此选项添加到 gcc 标志中、对吧?

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

    您好 Prasad、

    感谢您的持续支持和及时响应。

    我们希望将它们添加到我们的库中。

    是的、该库是为 A15构建的。

    对于—relaxed-ansii 选项,在 Linaro GCC ARM 编译器中无法识别它。

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

    我尝试从算法库文件中快速添加__func__,并且能够打印函数名。

    下面是我尝试的基本方法
    1.在 ALG_FrameCopyProcess 函数中添加了 VPS_printf (__func__)。 "vision_sdk\apps\src\rtos\alg_plugins\framecopy\frameCopyAlgoCpu.c"
    2.为 A15构建相同(4:1通道 VIP 捕捉+ ALG 帧复制(A15)+显示)
    3.已运行用例。
    4.我可以看到函数名称打印在上面。

    您能否将编译器和链接标志与 VSDK 标志进行比较? 构建不带-s -j 的 VSDK 并查看某些文件的标志。
    链接器也是如此(我快速检查了-gc 段 --start-group --end-group --start-group -lstdc++-lgcc -LC -lm -lnosys --end-group --end-group)

    编译器标志
    #编译 tda2ex-evm:a15_0:debug:app_alg_plugins:framecopy/frameCopyAlgoCpu.c
    /datalocal/ti_components/cg_tools/linux/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -md -mf /adasuser/prasad/vsdk_latest/vision_sdk/binaries/apps/tda2ex_evm_bios_all/obj/app_alg_plugins/tda2ex-evm/a15/debug/.deps/frameCopyAlgoCpu.P -c -mcpu=cortex-a15 -g -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame -ffunion-sections -fdata-SECTIONS -DSYSBIOS -DCGT_GCC -dcpu_id_idle_ddr_b_b_trad_d_dex_trad_d_d_d_trad_d_d_d_du_d_tru_target_db_d_d_tru_db_d_d_degy_db_d_d_d_d_dblu_tex_db_d_d_d_db_tid_d_d_db_tex_tex_db_db_db_tex_tex_tex_tex_db_d_d_db_db_tex_tex_tex_tex_tex_tex_tex_d_d_d_d_d_ std.h -dFATFS_PROC_TO_USE_IPU1_0 -DAVB_INCLUDE -DIVAHD_INCLUDE -DDSS_INCLUDE -DCL_INCLUDE -DVPE_INCLUDE -DIPU_PRIMARY_CORE_IPU1 -DIPU_REBILE_CORE_IPU2 -DTDA2EX_BUILD -DTDA2XX_family_build -DPLATocal FORM_EVM_SI -DVPS_VIP_Build -DVPS_CAL_Build -DVPS_DSS_BUILD -I/adasuser/vsdk/vsdk_latest/vapps/vapps/vapps/vappari_sdc/es//../ti_components/os_tools/bios_6_46_00_23/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/include vapps/linux/latest/vapps/udi_sdk/frame/linux/apps_sdk/overs/overs/linux/apps_sdk/overs/overs/overs/apps_sdk/apps_sdk/overs/overs/apps.iptid/overs/overs/overs/overs/apps_sdk/overs/apps.ti/overs/linux/apps_sdk/overs/apps_sdc/sdc/apps/linux/latest/apps.sdk/apps.sdc/apps.sdc/apps.sdc/apps_sdc/apps_sdc/apps/linux/apps//adasuser/prasad/vsdk_latest/vision_sdk/binaries/apps/tda2ex_evm_bios_all/obj/app_alg_plugins/tda2ex-evm/a15/debug/frameCopyAlgoCpu.oa15fg /../ti_components/os_tools/bios_6_46_00_23/packages
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Prasad、

    感谢您的建议。

    我们已确认__func__正在 VSDK 中工作。
    在进一步审阅了库代码之后、我们发现了使用 VPS_printf 的基本错误、我们希望使用 VPS_vprintf 代替 VPS_vprintf。

    修复库后、这现在是可以的。
    非常感谢您的支持。