STM32带符号乘法运算能力

[复制链接]
8207|3
 楼主| f43067 发表于 2009-5-4 11:42 | 显示全部楼层 |阅读模式
最近用STM32做24位AD的FIR滤波算法,需要进行两个32位有符号数相乘的运算,用C写的两个数相乘的语句如下:
FIR_Result = (signed long long)AD_Result[0] * (signed long long)B[0];
其中AD_Result和B是signed long型的,FIR_Result是signed long long型的。
测试发现STM32工作在72M时该语句执行时间为480多ns。如果将程序用速度优化为最高后大概450ns。
我的问题是这个执行时间能不能再短一些?Cortex-M3不是带有单周期硬件乘法器吗?
 楼主| f43067 发表于 2009-5-5 09:36 | 显示全部楼层

确实是单周期的硬件乘法器

我又看了一遍STM32的数据手册,确实是单周期的硬件乘法器。如下图的最后一行:
 楼主| f43067 发表于 2009-5-5 18:31 | 显示全部楼层

ST发布的FIR滤波程序是针对16位以下AD的。

如题。
我用的是外接的24位AD,所以不能用ST发布的FIR滤波程序,而且那是用汇编写的,看不太明白,所以也不好改。
但是两个带符号32位数相乘时结果是64位的,所以得用64位的signed long long计算。
zgcumt 发表于 2009-5-5 19:54 | 显示全部楼层

学习,准备做FFT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

20

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部