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.

定点型DSP28027使用IQmath的问题

大家好,

本人在使用IQmath进行除法运算时,参考文档C28x IQmath Library Module user’s Guide(v1.6.0)的使用步骤:(由于使用的是CCS3.3,所以不用添加GEL文件)

1)包含IQmathLib.h头文件

2)添加IQmath.lib库文件

接着直接使用_IQ12div进行两个long数的除法运算,但是单步运行的时候,提示

请问知道的朋友告诉一下,这是为什么?谢谢!

  • 忽略不管执行不会影响结果的       但是还没找到解决办法

    有人说按照IQmath的PDF文档中的说明将相应的库添加,貌似需要在Build Option中的linker下添加两个库

    你确认一下

  • 这个IQNdiv.asm看起来应该是IQmath.lib的一个源文件,由于你使用的是库文件,所以在单步的时候会找不到这个源文件,不影响程序正常运行。

  • 是的,我在这条除法指令下面一条指令处设置断点,然后连续运行,这样就没有问题了,而且结果也是正确的,说明这条除法指令执行正常。

    另外,我想请教一下,使用定点型DSP,如果操作数都是整型的,这种情况下,使用乘法“ * ”、除法“ / ”和使用_IQNmpy、_IQNdiv哪个执行时间更短,效率更高?

    本人测试了一下,发现使用IQmath的执行时间要比相应的乘法“ * ”、除法“ / ”的执行时间长的多,我的测试代码如下:

    long w,x,y,z;

    GpioDataRegs.GPBSET.bit.GPIO32 = 1;

    w=_IQ12div(_IQ12(100),_IQ12(9));

    x=_IQ12mpy(_IQ12(100),_IQ12(9));

    GpioDataRegs.GPBCLEAR.bit.GPIO32 = 1;

    GpioDataRegs.GPBSET.bit.GPIO33 = 1;

    y=100 / 9;

    z=100 * 9;

    GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;

    然后,使用示波器观察GPIO32和GPIO33的高电平的时间,结果显示使用IQmath的执行时间要长的多,那么请问,IQmath在什么情况下,才会相对于普通算法而提高效率?(当然了,使用IQmath的结果精度要高)

    通道1测试GPIO32,通道1测试GPIO33

    谢谢

  • 定点算法没必要使用IQmath,IQmath是使用定点数据的形式来表示浮点数,使用定点指令来完成浮点算法。所以,通常在进行浮点计算的时候才会用到IQmath。