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.

关于MSP430硬件乘法器的使用

MSP430有一个硬件乘法器,可以进行快速的乘法运算。

请问在IAR编译环境下,工程设置中选择了使用硬件乘法器后,程序中的运算过程是自动由编译器分配给了乘法器,还是起到允许使用硬件乘法器这样一个作用?

另外查了一些资料,说是使用硬件乘法器时不接受中断,需要禁止中断,否则会使运算结果错误,

那么将硬件乘法器放到中断处理程序中时,也就是在使用硬件乘法器前开启中断,进入中断后使用乘法器,使用结束后等待下一个中断,在这样一个过程中是否会对运算产生影响呢?

另外,在对于不同类型的数据(如int, float等)使用CPU进行处理,与使用硬件乘法器,两者之间的速度差距有多少呢?

  • 问题1、这个问题和编译器有关,有的mcu的编译器会自动分配乘法器的。msp430的iar编译环境有人做实验,结论是不会自动分配,你可以看看:http://blog.sina.com.cn/s/blog_98e47a4901010wtg.html

    问题2、msp430的乘法器在使用中涉及到两个操作数,如果在对第一个操作数赋值后被中断打断,并使用了乘法器,会使之前选择的操作类型丢失。msp430的乘法器是一个独立于cpu的模块,可以和cpu并行运行,所以对两个数复制完毕后,发生中断不影响计算。

    问题3、根据上面问题2的回答可以知道不影响运算。

    问题4、msp430的硬件乘法器计算一次乘法运算,需要三个MCLK周期。不同类型的数据(如int, float等)使用CPU进行处理使用的时间不一样,请自行测试。

  • 非常感谢您详细而用心的解答,帮助很大!