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/PROCESSOR-SDK-AM335X:无法访问的代码警告

Guru**** 2606725 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/653619/rtos-processor-sdk-am335x-unreachable-code-warning

器件型号:PROCESSOR-SDK-AM335X

工具/软件:TI-RTOS

这是一个新的...

我收到"无法访问的代码"警告... 实际上是其中的两个。

"package/cfg/app_pea8fnv.c"、行20172:警告:语句不可访问
"package/cfg/app_pea8fnv.c"、行20353:警告:语句不可访问 

它来自 XDC 生成的东西。  以下是其中之一:

/* Object_GET_S */
XDC_PTR ti_SysBIOS_KNL_Queue_Object_GET_S (XDC_PTR oa、XDC_Int I)
{
如果(oa){
返回((ti_SysBIOS_KNL_Queue_Object__*) oa)+ i;
}
if (ti_sysbios_KNL_Queue_Object__count_C ==0){
返回 NULL;
}
返回((ti_sysbios_KNL_Queue_Object__*) ti_sysbios_KNL_Queue_Object__table__C)+ i;<---此处
} 

最后一个故障分析申请是不可达的。  显然,第二个"if"语句总是正确的。  因为在第7244行我们有这个

/* Object__count_C */
#pragma DATA_SECTION (ti_SYSBIOS_KNL_Queue_Object_count_C、".const:ti_SYSBIOS_SysBIOS_Queue_Object_count_C");
__far__ const CT__TI_SYSBIOS_Queue_Object_COUNT_C_= TI_COUNT_COUNT_C_ 

我的配置文件没有任何关于队列的内容。  为什么它会生成此代码并向我发出警告?

-CSW

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Christopher、

    您使用的编译器版本是什么? 我在新的 TI ARM 编译器中看到了此警告。 我们希望看到修复生成的代码的最佳方法、以避免发出无害但令人厌烦的警告。

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Todd、
    我正在使用 TI v17.9.0编译器。
    这是一个合理的警告、如果我在代码中犯了错误、我会得到一个警告、因此我不希望它被禁用。

    我想知道 XDC 为什么生成该代码。 我投入了大量精力来删除警告、我看到有太多其他人使用粗心的代码忽略了警告... 我被咬了一次。 因此、干净的构建报告是我所希望的(在我们讨论的另一个线程中的内容中)。
    -CSW
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Christopher、
    我们最近修复了该错误、但在2月之前、修复了3.50.05的新 XDCtools 版本将不会出现。