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.

[参考译文] AM2434:使用#define LWIP_NOASSERT 的 lwip-build 失败

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1591384/am2434-lwip-builds-with-define-lwip_noassert-fails

器件型号: AM2434

您好:  

对于发行版、我们不想设置断言。 所以我们在 lwipopts.h 中定义了 LWIP_NOASSERT

我们将使用最新版本的工业通信 11。 但现在 TI make-scripts 中的-werror 编译选项会生成以下结果:

错误:未使用的变量“anyVariableUsedOnlyInAssertCall"</s>“

对于仅创建为在 assert 中使用的每个变量。  

我认为这应该是固定的。  

此致

Felix

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

    您好 Felix:

    理想情况下、仅在 LwIP 上下文中用于错误处理的变量应与宏“LWIP_UNUSed_ARG ()“一起使用、以便正常处理此问题。 lwip 栈的示例以及 MCU+ SDK 中提供的示例中都已经完成了此操作。  

    您能否分享一下您是在构建库还是在构建示例时观察到这些错误? 我也会在内部进行检查、并告诉您我的结果。 如果看到错误、 我将向内部团队提供此反馈以处理 SDK 中的错误。

    谢谢。此致、
    Teja。

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

    嗨、Teja、  
    很抱歉延迟回复:
    构建库时会发生这种情况。 如果您检查代码、该消息也会有意义。
    要重现:在所用的 lwipopts.h 头文件中设置 LWIP_NOASSERT:

    编译时会收到错误:

    如果您查看相关代码,您可以看到该变量仅用于 assert ,但没有提到的 LWIP_UNUSed_ARG():

    如果设置了 LWIP_NOASSERT、则 LWIP_ASSERT-CALL 将转换为:

    这不使用变量。  

    这会发生在代码中的更多位置。  

    此致
    Felix

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

    您好 Felix:

    我们能够重现此问题、并研究导致此问题发生的可能原因。 这似乎是与 LwIP 协议栈相关的问题、其中相应的错误在公开版本中未处理。 请允许我确认是否有这种情况。

    作为解决方案、您将 能够修改 lwip_assert 声明、使其不会花费太多额外的周期、并使用给定的条件作为输入。

    谢谢。此致、
    Teja。