打印

STM32与MSP430运算效率对比

[复制链接]
19028|48
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
owlcjy|  楼主 | 2010-4-14 19:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 owlcjy 于 2010-4-14 19:55 编辑

STM32MSP430运算效率对比

STM32使用STM32F101
MSP430使用MSP430F5438
时钟都设置为内部8M
定义以下变量:
unsigned int i,j,k;
unsigned char a,b,c;
float f1,f2,f3;
初始化为:
i=0;
a=1;
b=2;
c=3;
f1=0.1234;
f2=3456.6789;
以上定义和初始均不计入总运算时间。
同样执行以下语句:


//////////////////////////////////////////////////


for(i=0;i<100;i++)//t=4118


{


;

}
//////////////////////////////////////////////////

for(i=0;i<1000;i++)//t=40630


{



;


}

//////////////////////////////////////////////////

for(i=0;i<100;i++)//t=134768


{


f3=f1*f2;//t=281;

}

//////////////////////////////////////////////////

f3=f1*f2;//t=1291;
沙发
owlcjy|  楼主 | 2010-4-14 19:50 | 只看该作者
本帖最后由 owlcjy 于 2010-4-14 19:55 编辑

运行时间如表格

通过实验发现,在处理整形运算时,STM32的速度略快于MSP430,在做浮点运算时,速度远远快于MSP430,在需要复杂运算的环境中,STM32极大优势,速度不可同日而语,当然功耗也是。

使用特权

评论回复
板凳
again_gyf| | 2010-4-14 20:17 | 只看该作者
有啥意思呢!

使用特权

评论回复
地板
robin7513| | 2010-4-14 20:38 | 只看该作者
楼主够严谨的!支持一下!

使用特权

评论回复
5
xsgy123| | 2010-4-14 22:19 | 只看该作者
深层次的研究就有点意思了

使用特权

评论回复
6
machunshui| | 2010-4-15 08:18 | 只看该作者
msp430的指令效率本来就不是一般的差。
在寄存器里面的纯计算还不错,
要是牵涉到从RAM到寄存器传输数据,
或者到从寄存器到RAM传输数据,

msp430的效率那简直惨不忍睹

使用特权

评论回复
7
午夜霓虹| | 2010-4-15 08:30 | 只看该作者
这个比法不太好啊,msp430是16位的,stm32是32位的cpu,你应该拿32位的dsp来比。

使用特权

评论回复
8
zhjerry| | 2010-4-15 08:32 | 只看该作者
关于整形运算补充2句:
unsigned int 在MSP430里面默认16位而在STM32里面默认32位,这里是按照默认设置进行的。
如果把MSP430的整形数强制为32位(unsigned long),大家一起做32位整形运算,估计效果和浮点数的情形差不多,你可以试试。

使用特权

评论回复
9
笑苍天| | 2010-4-15 09:00 | 只看该作者
比的不错,对我选型有一定帮助

使用特权

评论回复
10
IJK| | 2010-4-15 09:25 | 只看该作者
关于整形运算补充2句:
for(i=0;i<100;i++)//t=4118
{
;
}
其实里面没什么运算,如果里面进行乘法运算,估计效果和浮点数的情形差不多,甚至430会更差。

使用特权

评论回复
11
hxlwjn| | 2010-4-15 11:55 | 只看该作者
MSP430是16位的,STM32是32位的,这样比好像不公平。

使用特权

评论回复
12
香水城| | 2010-4-15 12:19 | 只看该作者
STM32的目标之一就是挤占16位单片机的市场,因为STM32在性能上有优势,价钱也不差。

使用特权

评论回复
13
草履虫| | 2010-4-15 12:20 | 只看该作者
转网上的一篇51,ARM,DSP的比较(仅结论部分):
首先要强调的是,这几种微控制器都可以通过提高晶振的振荡频率来缩短指令周期,但是这些控制器的振荡频率是有一定限制的,例如单片机不超过40 MHz,而LPC2114的频率不超过60 MHz,TMS320F2812的最高频率为150 MHz。在同样的工作频率下,ARM指令运行的指令周期远远高于传统的单片机。 因为传统的单片机没有采用流水线机制,而ARM核和DSP都采用了流水线,但是由于访问外设和RAM等存储器要加一定的时钟周期,因此ARM不是真正可以实现单周期运行的,特别是不能实现单周期的乘法指令,而DSP可以实现真正的单周期乘法指令,速度要远远高于ARM微控制器。(转)
LZ的比较只能说明,ARM部分方面胜于单片机。关键时候未必有单片机快。

使用特权

评论回复
14
rasar| | 2010-4-15 12:45 | 只看该作者
hehe ,路过

使用特权

评论回复
15
auzxj| | 2010-4-15 14:08 | 只看该作者
to13楼
关键时候未必有单片机快。

关键时候是什么时候

使用特权

评论回复
16
ayb_ice| | 2010-4-15 15:59 | 只看该作者
LZ怎么不比一下IO的操作速度呢还有两个内存移动呢

使用特权

评论回复
17
灵动系统| | 2010-4-15 16:08 | 只看该作者
不怎么公平啊!比了没意义!

使用特权

评论回复
18
owlcjy|  楼主 | 2010-4-15 16:14 | 只看该作者
谢谢提醒。 8# zhjerry

使用特权

评论回复
19
owlcjy|  楼主 | 2010-4-15 16:15 | 只看该作者
本帖最后由 owlcjy 于 2010-4-15 16:19 编辑
关于整形运算补充2句:
unsigned int 在MSP430里面默认16位而在STM32里面默认32位,这里是按照默认设置进行的。
如果把MSP430的整形数强制为32位(unsigned long),大家一起做32位整形运算,估计效果和浮点数的情形 ...
zhjerry 发表于 2010-4-15 08:32

谢谢提醒,我错误的以为STM32 int型是16位,所以看来以上测量真的有很大漏洞,等我重新测一遍。
我的测量只是一种不严谨的测量,仅供参考。

使用特权

评论回复
20
午夜霓虹| | 2010-4-15 17:05 | 只看该作者
好像有个标准的测试方法,你可以参考一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

86

帖子

2

粉丝