在c语言中,iar设置选择了硬件乘法器,但是感觉编译后并没有使用硬件乘法器运算量还是那么的大!
比如long x = 8,y= 1000;
时能硬件乘法器后,理论上x*y应该很快算完,
但是没有!花费了很多的时间,
请教如何搞呢
谢谢
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.
在c语言中,iar设置选择了硬件乘法器,但是感觉编译后并没有使用硬件乘法器运算量还是那么的大!
比如long x = 8,y= 1000;
时能硬件乘法器后,理论上x*y应该很快算完,
但是没有!花费了很多的时间,
请教如何搞呢
谢谢
参考MSP430ware里面的例程,msp430ware可以在官网下载。
两种方法:
1、使用编译器自动使用硬件乘法器的方法,需要在IAR环境了里面设置,默认使用乘法器;
2、使用寄存器的方式:例如
MPY = x;
OP2 = y;
y =RES;
3、也可以用驱动库
MPY32_setOperandOne16Bit(MPY32_MULTIPLY_UNSIGNED,
0x1234);
//Set Operand 2 to begin the multiplication operation
MPY32_setOperandTwo16Bit(0x5678);
参考下这里
http://www.cnblogs.com/Engin/archive/2011/08/28/2156346.html
这样的:
我的意思就是做普通的运算,使用内部的硬件乘法器如何实现,在iar中
x= 1.234879;
y= 0.897;
z= 1.58* x / Y ;
像这样的,用c语音如果不用内部乘法器的话需要花费大量的cpu时间
在iar的c语音内如何使用内部的硬件乘法器呢,从而减少cpu时间的费用,节省电量
MPY32_setOperandOne16Bit(MPY32_MULTIPLY_UNSIGNED,
0x1234);这个使用肯定不能让人满意哦!
敷衍人的哦
不然,430一点都不低功耗啦!!