Other Parts Discussed in Thread: MATHLIB, AM5716, OMAP-L138
主题中讨论的其他部件:MATHLIB、 OMAP-L138
- 我将附加一个演示此错误的简单 CCS 工程的 ZIP 文件。
- CCS 版本:7.3.0
- C6000编译器版本:8.2.1
- MATHLIB_RTS_C66X 版本:3.1.2.1 (http://software-dl.ti.com/sdoemb/sdoemb_public_sw/mathlib/latest/index_FDS.html)
我的 CCS 工程中的 main.c 文件如下:
#include
void main (void)
{
//此函数调用不会返回。
float 结果= fmodf (float) 90.0、(float) 45.0;
//这里的除法只是为了使 divsp 从 mathlib_rts.ae66链接。
//如果注释掉此行,则不会使用 mathlib_rts.ae66,并且将返回 fmodf()调用。
float test =结果/(float) 1.0;
}
我发现 、当向该函数提供某些参数时、来自 RTS 库(C:\ti\ccsv7\tools\compiler\ti-cgt-C6000-C6000_8.2.1\lib\rts6600_elf.lib)的 fmodf 函数永远不会返回。 我仅在函数的返回值为零(即除法的其余部分为零)时才看到这种情况。 当 RTS 库中的__c6xabi_divf 函数链接到可执行文件时,我没有看到这种情况--我只看到 MATHLIB_RTS 库中的 DIVSP 函数覆盖了__c6xabi_divf 函数时发生的情况。 它可能与 MATHLIB 除法函数的精度与 RTS 库除法函数的精度有关。
我希望 TI 可以使用我的 CCS 项目重现此情况、并确认是否存在针对此错误的权变措施。 提前感谢您的帮助。
此致、
Dave