今天测试了下STM32F4和TI F28335的浮点性能

2019-12-12 18:22发布

这几天刚拿到STM32F4的评估板,STM32F4这次的卖点就是FPU和DSP指令集,关注了挺长时间,这次就想测试一下STM32F4的浮点性能,如果满足就升级自己飞控的架构。本来用STM32F103+28335双核架构,F28335当浮点处理器用,调试起来比较麻烦,所以一直想换了。

测试代码就是用的我飞控的算法,全部使用浮点运算,包含姿态和位置两个7阶和9阶的卡尔曼滤波器,包含大量的矩阵运算以及部分导航算法和PID控制器等,还有部分IF和SWITCH包含跳转的判定语句,相比纯算法算是一个比较综合的运算。

测试环境:
F28335:CCS V3.3,使用TI优化的数学库,不开优化,程序在RAM里执行。
STM32F4:KEIL V4.7,使用ARM优化的数学库,不开优化。

测试方法:
F28335:在飞控算法入口设置断点,清零CCS的CPU计数器(profile->clock),然后STEP OVER,记录下CPU的计数
STM32F4:在飞控算法入口设置断点,记录下Register窗口内算states计数器,然后STEP OVER,记录下新的计数器数值,与之前的数值相减得到CPU计数

测试结果:
F28335:253359个CPU周期,除以150MHZ,大约是1.69ms
STM32F4:初始值17470 结束值156740,一共139270个周期,除以168MHZ,大约是0.828ms


结论就是,对于包含相对较多跳转的综合浮点算法而言,STM32F4似乎更胜一筹。
大家对于测试过程有什么不足的地方请指出,希望能抛砖引玉,对这两款处理器性能有个更深的体会








友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
liu_tianyi
1楼-- · 2019-12-14 07:52
ahuang227 发表于 2013-5-27 08:50
不知道这个样子对比是不是合理啊。还是硬件IO反转看的比较直观。

没搞IO翻转是因为手边没示波器可以看,改天去学校实验室搞以搞,嘿嘿~
liu_tianyi
2楼-- · 2019-12-14 08:46
kmani 发表于 2013-5-27 08:58
楼主,它俩RAM都不小,你上电时都把程序从flash拷贝到RAM里面,然后在RAM里面执行程序,看看速度会增加多少 ...

F28335我是放在RAM里执行了,STM32F4似乎架构不一样,我还没搞定这个。。不过其他人测试下来似乎放FLASH和放RAM,提升速度并不像TI的DSP那样可以得到很大的提升
liu_tianyi
3楼-- · 2019-12-14 10:36
ppa2001 发表于 2013-5-27 12:10
感觉用STM32 的F4做飞控不靠谱呢,性能没得说,可靠性不敢说
正在考虑飞思卡尔的MPC5XX系列呢 ...

这个怎么说?
kmani
4楼-- · 2019-12-14 12:25
 精彩回答 2  元偷偷看……
87hedong87
5楼-- · 2019-12-14 18:13
这个有点意思   
ppa2001
6楼-- · 2019-12-14 21:59
liu_tianyi 发表于 2013-5-27 16:11
这个怎么说?

以前用F4芯片的硬件IIC读数据,偶尔会死机!而且复位无效,只能重新上电。虽然可以用模拟IIC,但觉得不爽。

一周热门 更多>