我遇到了一个 CLA 数学不常见的问题。 通过 SysConfig 启用 CLA 数学后、我开始使用一些 IQ 公式进行测试。 最初一切都运行良好、如屏幕截图所示:
但是、在我添加"flt_PG =_IQtoF (_IQ (0.2));"行的那一刻、就出现了一个错误、指示首先引用了"_IQ24toF "、如第二个屏幕截图所示。
我已经努力解决这一问题一个星期了、我对可能出错的问题非常担心。 此外、 我已经在我的项目中包含了必要的.h、.lib 和.cmd 文件。 为了清楚地说明、我从 C2000ware 重新导入了 IQmath 示例(请参阅下面随附的图)、该示例无错误运行。 但是、添加行 tempZ_flt =_IQtoF (_IQ (0.3))会触发前面提到的与_IQtoF 相关的错误、该错误首先被引用。 在合并.lib 文件(请参见下面随附的图)并重新编译后、错误仍然存在。 将.cmd 文件从2838x_RAM_lnk_CProj_CPU1修改为 IQmath_2838x_fpu32即可解决该问题、但会发出警告(请参阅下面随附的图)。 鉴于此,(1)为什么会发生这种现象? (2)如何解决仍然存在的警告、这也与 cmd 设置相关? (3)如何将完整的 IQmath 集成到现有项目中、主要考虑到需要调整原始 cmd 文件而不使用 IQmath_2838x_fpu32?