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.

TMS320F28033: 使用IQmath 时显示_IQ24frac(long) 未定义

Part Number: TMS320F28033
Other Parts Discussed in Thread: C2000WARE

我在28033的项目中添加IQmath库,进行取整和取小数时发现两个函数没有定义,请问这些函数是在哪个文件里面定义的呢。

  • 你好,请问你的库是如何添加的?有没有参考这个位置的IQmath文档进行添加?file:///C:/ti/c2000/C2000Ware_3_04_00_00/libraries/math/IQmath/c28/docs/IQmath_Quickstart.pdf

    图中报错的两个函数在IQmath库中都有包含的。

  • 我是先添加.lib文件到工程中,然后在properties的links file search 里面添加了.lib文件路径,之后在MAIN.CPP里面包含了头文件,我之前参考了V1.5C版本的库指导手册,添加之后,使用里面的一些函数,就提示没有定义。我也仔细看过IQmathLib.h和IQmathCPP.h里面,关于_IQ24frac(long)等函数的定义,我猜测是在IQmath.lib里面,所以我现在怀疑我的编译器没有正确添加IQmath.lib到工程里面。我的工程时里面时按照.cpp形式来构建的,不知道是否有什么影响,CMD文件也修改过,不知是否是CMD文件里面关于IQmathtable定义的问题呢。还请邓工帮忙指导一下,谢谢。

  • 看了一下你的操作,没觉得有什么问题。我会再确认一下

  • 你好,我试了一下没能复现你的问题。

    能否检查链接器命令文件的“SECTIONS”部分中是否正确分配了“IQMath”?

    请检查map文件可以查看IQMath库是否已正确配置。

  • 这是我的工程里面的CMD文件内容,我是把IQmath指向的FLASHSET内存段的,实际编译之后的map文件里面确实显示IQTABLES内存没有使用

    然后我参看你们给的关于28035的例程里面IQmath是指向的RAML0L1

    不知道IQmath段应该指向0x008000开始的固定地址嘛,还是可以随意指定一个地址呢。

  • 如果是在使用ROM中的表,则不需要在linked command file中提到IQTables。只需要添加boot rom symbol library。

    如果想将这些表放入RAM中,则必须以指向RAM的方式指定它。

    因为你似乎正在使用ROM中的表,所以地址不能更改。