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.

[参考译文] 有关 TCP/IP keepalive 中的 printf 的问题

Guru**** 2578845 points
Other Parts Discussed in Thread: SYSBIOS, TM4C1294NCPDT

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1130876/question-about-printfs-from-the-tcp-ip-keepalives

主题中讨论的其他器件:SYSBIOSTM4C1294NCPDT

我使用的是:

CCS 6.1.2  

TIRTOS 2.16.0.08、

编译器5.2.7和

XDC 3.31.1333

TM4C1294NCPD

TI 网络堆栈 NDK。

我的问题是、是否有任何方法可以仅为 TCP/IP keepalive 关闭 CCS 中的 printf、如下所示。  我不想更改源代码、因为我发现 printf 来自 CCS 和 RTOS 的安装、但我有不同的 PC、所以我更喜欢在项目配置中进行修复、以便在我的项目配置中进行更改 每种环境都会发生变化。    我不想禁用窗口中的所有 printf、因为我将其用于其他用途。

00029.100 TcpTimeoutKeep:保持超时
00049.100 TcpTimeoutKeep:保持超时
00069.100 TcpTimeoutKeep:保持超时
00089.100 TcpTimeoutKeep:保持超时
00109.100 TcpTimeoutKeep:保持超时
00129.100 TcpTimeoutKeep:保持超时
00149.100 TcpTimeoutKeep:保持超时
00169.100 TcpTimeoutKeep:保持超时
00189.100 TcpTimeoutKeep:保持超时
00209.100 TcpTimeoutKeep:保持超时
00229.100 TcpTimeoutKeep:保持超时
00249.100 TcpTimeoutKeep:保持超时
00269.100 TcpTimeoutKeep:保持超时
00289.100 TcpTimeoutKeep:保持超时
00309.100 TcpTimeoutKeep:保持超时
00329.100 TcpTimeoutKeep:保持超时
00349.100 TcpTimeoutKeep:保持超时
00369.100 TcpTimeoutKeep:保持超时
00389.100 TcpTimeoutKeep:保持超时
00409.100 TcpTimeoutKeep:保持超时
00429.100 TcpTimeoutKeep:保持超时
00449.100 TcpTimeoutKeep:保持超时
00469.100 TcpTimeoutKeep:保持超时
00489.100 TcpTimeoutKeep:保持超时
00509.100 TcpTimeoutKeep:保持超时
00529.100 TcpTimeoutKeep:保持超时
00549.100 TcpTimeoutKeep:保持超时

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

    Doug、您好!

    我可能会对这里的"不想更改源代码"位有点困惑、但根本原因是 TCP 堆栈的 C 源代码中的代码、而不是 CCS 本身。 但是、如果您也是指 RTOS 源代码、那么很遗憾、无法仅关闭该 printf。

    该特定行来自 void TcpTimeoutKeep( TCPPROT *pt ) API 中的 tcptime.c 文件,其中有以下行:

    DbgPrintf (DBG_INFO、"TcpTimeoutKeep:保持超时");

    因此、如果您将其删除、则应该可以解决该问题。

    但是、由于它是一个通用调试输出、因此没有任何其他方法可以将该特定行作为目标来不打印-它必须从 RTOS 的源代码中删除。

    此致、

    Ralph Jacobi

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

    printf 的来源文件位于路径下、我在将问题发布到以下位置之前找到了该文件:

    CCS_Install\tirtos_2_16_00_08\products\NDK\STACK_tcp_tcptime.c

    我尝试修改了源文件、但我仍然看到了打印输出、因此我认为代码可能会链接进来或其他一些东西。

    如果修改文件以使 printf 无效、则该文件不是工程或工程的源代码控制的一部分、因此更改文件只能在修改文件时修改源文件的 PC 上工作。

    道格

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

    您好 Doug、

    我想它在库中编译、然后您需要重新编译该库。

    您可以检查项目的链接库列表吗? 这可能会提示您在哪个库中包含这些 NDK 元素。

    此致、

    Ralph Jacobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="189615" URL"~//support/tools/code-composer-studio 组/CCS/f/code-composer-studio 论坛/1130876/question-about -printfs-fs-from-tcp-ip-keepalives/4195739#4195739"]

    该特定行来自 void TcpTimeoutKeep( TCPPROT *pt ) API 中的 tcptime.c 文件,其中有以下行:

    DbgPrintf (DBG_INFO、"TcpTimeoutKeep:保持超时");

    因此、如果您将其删除、则应该可以解决该问题。

    [/报价]

    《TI 网络开发者套件(NDK) API 参考指南 》解释了 DbgPrintf()的第一个参数是严重性。 有一个配置参数 DbgPrintLevel Debug 消息打印阈值、用于设置将要报告的系统调试消息的最低级别。

    DbgPrintLevel 的默认值为 DBG_INFO。 将 DbgPrintLevel 配置参数更改为 DBG_WARN 的下一个最高级别时、应禁止报告 TcpTimeoutKeep (以及网络堆栈中的任何其他 DBG_INFO 消息)、而无需更改网络堆栈代码。

    我自己也没有尝试过这种方法。

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

    在 CCS 工程属性中、我具有以下内容:

    Build->Include 选项:

    "${workspace_loc:/${ProjName}}"

    "${workspace_loc:/${ProjName}/inc}"

    "${COM_TI_RTSC_TIRTTOSTIVAC_INSTALL_DIR}/products/TivaWare_C_Series-2.1.71b"

    "${COM_TI_RTSC_TIRTTOSTIVAC_INSTALL_DIR}/products/BIOS_6_45_01_29/packages/ti/sysBIOS/posix"

    "${CG_TOOL_ROOT}/包含"

     

    Build->ARM 链接器:

                   -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -g --gcc --define=ccs"--define=target_is_TM4C129_RA1 --define=part_TM4C1294NCPDT --define=ccs="ccs"--define=2-v2-inflag/cc=2-subse-display_subsensors=v2-tag/cs=v2-v2-gt --fit_off-codest-codest-subs=ctrack_remot_bag/cs=2-ines=ctrack-subs=-super -codest-subs=ctrack_bag/cs=-super -subsbag/cs=v2-v2-ines=ctrack-super -codest-subs=coff-codest-super -codest-super -codest-super -codest-subs=tag/cs_bag-code.t.cs=ctrack-subs=

     

    Build->ARM Linker->File search path

    "${COM_TI_RTSC_TIRTTOSTIVAC_INSTALL_DIR}/products/TivaWare_C_Series-2.1.71b/driverlib/ccs/调试/driverlib.lib"

     

    网络是通过*。cfg 文件中的 RTOS 配置工具添加的、因此我必须检查是否存在链接的库?

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

    您好 Doug、

    我不认为.cfg 也有库、但我只是想... 通常有两个与 RTOS 相关的项目、即应用程序和内核项目。 您是否也重新构建了内核项目? 如果没有、请尝试该操作。

    如果您看到该线路的输出发生了任何变化、那么这也是一个有趣的测试。 我再次搜索 RTOS 文件、找不到 任何其他对 TcpTimeoutKeep 的引用。

    此致、

    Ralph Jacobi

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

    我从未重建过库、是否有关于如何在某个位置重建库的说明?

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

    Doug、您好!

    并不意味着内核项目是一个库-它只是 CCS 项目、它应该具有 SYS/BIOS/内核配置、然后由其他 RTOS 应用项目使用。

    也就是说、如果我们讨论 TivaWare 中的 driverlib 等库、我们在第4.2节的新(ish)入门指南中对此进行了介绍!  https://www.ti.com/lit/ug/spmu373a/spmu373a.pdf#page=20

    此致、

    Ralph Jacobi