TI中文支持网
TI专业的中文技术问题搜集分享网站

关于F2812 IQmath 乘法优化问题

关于F2812 IQmath 乘法优化问题

 CPU: F2812

ccs6

long x;

x=_IQ16mpy(_IQ16(0.017),x);

第一段程序:

     正常编译后为:        

 MOVL      XAR4,#1114            ; [CPU_U] |502|        

 MOVL      XT,XAR4               ; [CPU_] |502|       

 IMPYL     P,XT,*-SP[4]          ; [CPU_] |502|       

 QMPYL     ACC,XT,*-SP[4]        ; [CPU_] |502|      

LSL64     ACC:P,#16             ; [CPU_] |502|        

MOVL      *-SP[4],ACC           ; [CPU_] |502|

如上代码计算时间较长.

第二段程序,与第一段程序结果相同,但速度要快,        

MOV      T,#1114          相当于先左移16位,后面就不需要左移16位。           

 QMPYL    ACC,XT,*-SP[4]                

 MOVL     *-SP[4],ACC      

这样效果是一样的,不需左移了,这样时间省了一半.

如何才能编译出第二段程序呢?    我想可能的办法是:

1、使用优化方法,试过,没有效果

 2、采用其他的IQmath方法,如IQNmpyIQX, 但一直没找到合适的方法。

请大侠帮忙看一下,如何才能优化成第二段程序呢?

赞(0)
未经允许不得转载:TI中文支持网 » 关于F2812 IQmath 乘法优化问题
分享到: 更多 (0)