搜索
bottom↓
回复: 111

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

  [复制链接]

出0入0汤圆

发表于 2013-5-27 02:42:35 | 显示全部楼层 |阅读模式
这几天刚拿到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似乎更胜一筹。
大家对于测试过程有什么不足的地方请指出,希望能抛砖引玉,对这两款处理器性能有个更深的体会








阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出25入12汤圆

发表于 2013-5-27 03:06:52 | 显示全部楼层
记号下 改天也比比

出0入0汤圆

发表于 2013-5-27 03:10:03 | 显示全部楼层
不太懂DSP...
但是支持楼主发对比数据.......
断点调试没试过...
我一般测试速度都用IO翻转...然后用示波器看....

出0入0汤圆

发表于 2013-5-27 08:03:59 来自手机 | 显示全部楼层
最喜欢楼主对这两款芯片的对比了!

出0入0汤圆

发表于 2013-5-27 08:50:36 | 显示全部楼层
不知道这个样子对比是不是合理啊。还是硬件IO反转看的比较直观。

出0入0汤圆

发表于 2013-5-27 08:58:31 | 显示全部楼层
楼主,它俩RAM都不小,你上电时都把程序从flash拷贝到RAM里面,然后在RAM里面执行程序,看看速度会增加多少?
因为STM32F4说的有加速,但是不靠谱。

出0入0汤圆

发表于 2013-5-27 09:00:55 | 显示全部楼层
怎么开启FPU啊,我还不知道怎么检查开启了FPU

出0入0汤圆

发表于 2013-5-27 09:51:34 | 显示全部楼层
不错,学习了

出0入0汤圆

发表于 2013-5-27 11:42:07 | 显示全部楼层
期待更加直观的对比

出110入0汤圆

发表于 2013-5-27 11:49:50 | 显示全部楼层
国外很多DIY飞控早已用上F4

咱这里都打算使用双F4结构了:增稳板一个F4,控制板一个F4

出0入663汤圆

发表于 2013-5-27 11:53:30 | 显示全部楼层
我觉得28335的运算能力对比M4F确实没优势,但ADC和PWM还是完胜F4的。

出0入0汤圆

发表于 2013-5-27 12:10:20 | 显示全部楼层
感觉用STM32 的F4做飞控不靠谱呢,性能没得说,可靠性不敢说
正在考虑飞思卡尔的MPC5XX系列呢

出0入0汤圆

发表于 2013-5-27 12:32:20 来自手机 | 显示全部楼层
Mark…
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端

出0入0汤圆

 楼主| 发表于 2013-5-27 15:38:25 | 显示全部楼层
ahuang227 发表于 2013-5-27 08:50
不知道这个样子对比是不是合理啊。还是硬件IO反转看的比较直观。

没搞IO翻转是因为手边没示波器可以看,改天去学校实验室搞以搞,嘿嘿~

出0入0汤圆

 楼主| 发表于 2013-5-27 16:09:46 | 显示全部楼层
kmani 发表于 2013-5-27 08:58
楼主,它俩RAM都不小,你上电时都把程序从flash拷贝到RAM里面,然后在RAM里面执行程序,看看速度会增加多少 ...

F28335我是放在RAM里执行了,STM32F4似乎架构不一样,我还没搞定这个。。不过其他人测试下来似乎放FLASH和放RAM,提升速度并不像TI的DSP那样可以得到很大的提升

出0入0汤圆

 楼主| 发表于 2013-5-27 16:11:40 | 显示全部楼层
ppa2001 发表于 2013-5-27 12:10
感觉用STM32 的F4做飞控不靠谱呢,性能没得说,可靠性不敢说
正在考虑飞思卡尔的MPC5XX系列呢 ...

这个怎么说?

出0入0汤圆

发表于 2013-5-27 16:18:46 | 显示全部楼层
liu_tianyi 发表于 2013-5-27 16:09
F28335我是放在RAM里执行了,STM32F4似乎架构不一样,我还没搞定这个。。不过其他人测试下来似乎放FLASH ...

STM32F4的flash里面运行都比28335在RAM里跑得快?
碉堡了、

出0入0汤圆

发表于 2013-5-27 16:23:29 | 显示全部楼层
这个有点意思   

出0入0汤圆

发表于 2013-5-27 16:29:21 来自手机 | 显示全部楼层
liu_tianyi 发表于 2013-5-27 16:11
这个怎么说?

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

出0入0汤圆

 楼主| 发表于 2013-5-27 16:45:14 | 显示全部楼层
ppa2001 发表于 2013-5-27 16:29
以前用F4芯片的硬件IIC读数据,偶尔会死机!而且复位无效,只能重新上电。虽然可以用模拟IIC,但觉得不爽。 ...

那是因为硬件I2C是状态机,如果你在读取的时候重置了MCU,从设备和主设备的状态不同导致挂起,只能重置总线。。。

出0入0汤圆

 楼主| 发表于 2013-5-27 16:46:47 | 显示全部楼层
kmani 发表于 2013-5-27 16:18
STM32F4的flash里面运行都比28335在RAM里跑得快?
碉堡了、

我觉得可能是跳转多的关系,可能用FFT测试,就会得出相反的结果了。。

出0入0汤圆

发表于 2013-5-27 17:30:26 | 显示全部楼层
liu_tianyi 发表于 2013-5-27 16:46
我觉得可能是跳转多的关系,可能用FFT测试,就会得出相反的结果了。。

开始以为28335是单周期乘法,后来一看测试数据一个浮点乘法用了0.5us。
所以估计FFT,FIR,这类运算28335也不会太好。

出0入0汤圆

发表于 2013-5-27 17:36:11 | 显示全部楼层
不错不错!

出0入0汤圆

发表于 2013-5-27 19:38:06 | 显示全部楼层
FFT测试一下

出0入24汤圆

发表于 2013-5-27 19:52:14 来自手机 | 显示全部楼层
这个帖子很有意义。顶lz

出0入0汤圆

发表于 2013-5-27 19:55:35 | 显示全部楼层

相差那么大?

出0入0汤圆

发表于 2013-5-27 20:21:09 | 显示全部楼层
fft之类的,滤波之类的可以用fpga,比这俩快多了

出0入0汤圆

发表于 2013-5-27 20:39:13 | 显示全部楼层
高端啊,学习了

出0入0汤圆

发表于 2013-5-27 20:43:00 | 显示全部楼层
一个倾向于消费类,一个倾向于工业类,2个都在玩,没测试fpu,个人更加喜欢28335,稳定可靠。

不过28335的双电源和封装实在让人蛋疼。

出0入0汤圆

发表于 2013-5-27 21:40:19 | 显示全部楼层
围观ing

出0入0汤圆

 楼主| 发表于 2013-5-28 01:43:48 | 显示全部楼层
mage99 发表于 2013-5-27 20:43
一个倾向于消费类,一个倾向于工业类,2个都在玩,没测试fpu,个人更加喜欢28335,稳定可靠。

不过28335的 ...

这个相当赞同,不过飞控上我宁愿用2个STM32F4跑双余度也不想搞一个F28335。。。

出0入0汤圆

发表于 2013-5-28 03:13:47 来自手机 | 显示全部楼层
ppa2001 发表于 2013-5-27 12:10
感觉用STM32 的F4做飞控不靠谱呢,性能没得说,可靠性不敢说
正在考虑飞思卡尔的MPC5XX系列呢 ...

个人觉得,这就是纯心理作用了。芯片可靠性是什么级别,自己原因导致可靠性降低才是主要的吧?

出0入0汤圆

 楼主| 发表于 2013-5-28 03:23:51 | 显示全部楼层
本帖最后由 liu_tianyi 于 2013-5-28 05:08 编辑

我犯了一个严重的错误,误以为KEIL的DEFAULT就是不优化了,其实是Default是高度优化,LEVEL-O1才是不优化。参考这里:
http://www.keil.com/support/man/docs/uv4/uv4_dg_adscc.htm

重新测试了一下STM32F4的成绩:
一共285964个周期,除以168MHZ,大约是1.7ms,比F28335略慢



抛开架构因素,从纯浮点运算方面来看的话。STM32F4的FPU加减乘指令VADD.F32、VSUB.F32、VMUL.F32都是单周期指令,而除法VDIV.F32耗费14个周期。
例如:a = a / b;产生的汇编为:
  1. 0x08000220 ED900A00  VLDR          s0,[r0,#0x00]
  2. 0x08000224 4804          LDR           r0,[pc,#16]  ; @0x08000238
  3. 0x08000226 EDD00A00  VLDR         s1,[r0,#0x00]
  4. 0x0800022A EE801A20  VDIV.F32    s2,s0,s1
  5. 0x0800022E 4803          LDR           r0,[pc,#12]  ; @0x0800023C
  6. 0x08000230 ED801A00  VSTR         s2,[r0,#0x00]
复制代码
F28335:  F28335的FPU有加减乘法指令,都是双周期的,由于没有硬件除法指令,F28335这里是用软件模拟的浮点除法,汇编可以看到 LCR  $div_f32.asm字样,需要19个时钟周期。
例如:a = a * b,产生的汇编为:
  1. 0087B2 E203 MOV32      *-SP[4], R0H
  2. 0087B4 E2AF MOV32      R1H, *-SP[6], UNCF
  3. 0087B6 E700 MPYF32     R0H, R1H, R0H
  4. 0087B8 7700 NOP                                               //需要让流水线等待FPU运算完毕,所以需要NOP     
  5. 0087B9 E203 MOV32      *-SP[4], R0H
复制代码
除法:
  1. 0087BD E203 MOV32      *-SP[4], R0H
  2. 0087BF E2AF MOV32      R1H, *-SP[6], UNCF
  3. 0087C1 7640 LCR        $div_f32.asm:52:71$
  4. 0087C3 E203 MOV32      *-SP[4], R0H
复制代码
结论:
可见单从浮点处理器来说,F28335是不如F4的FPU的。但是由于F28335是哈佛架构,有较长的流水线,可以在一个时钟周期里完成读取,运算和存储,所以程序连续运行的话,就比ARM快上许多许多,比如执行一次a = a + b只需要5个时钟周期,但是缺点就是一旦要跳转,就必须清空流水线,如果是
  1. for(i = 0;i < 1000; i ++)
  2. a = a + b;
复制代码
这样的运算,速度反而要比ARM慢(测试下来单次是17周期,ARM是14).所以说这就是ARM和DSP不同的地方了。


出0入0汤圆

发表于 2013-5-28 04:21:35 | 显示全部楼层
liu_tianyi 发表于 2013-5-28 03:23
我犯了一个严重的错误,误以为KEIL的DEFAULT就是不优化了,其实是Default是高度优化,LEVEL-O1才是不优化。 ...

朋友,浮点除法和开方两条指令可是乱序的哦!!虽然要14周期,但是这14周期里只要程序没有浮点指令,是不影响整数指令运算的!所以如果手工汇编,优化的好,除法一样是“单周期”,看你怎么巧妙安排程序的逻辑结构了,顺便好好利用浮点的32个寄存器做为整数寄存器的拓展,又可以玩出很多的优化可能。顺便的,要求不高的运算场合适当使用16bit定点数,利用众多SIMD指令并行化,然后在合适的时候传递到fpu中单周期转化为浮点数运算。。。潜力无穷阿!只有手工写汇编,才能体会到arm设计cortex m4指令集的各种美味,目前的编译器还是不行的!

出0入0汤圆

 楼主| 发表于 2013-5-28 05:21:06 | 显示全部楼层
jisaowang 发表于 2013-5-28 04:21
朋友,浮点除法和开方两条指令可是乱序的哦!!虽然要14周期,但是这14周期里只要程序没有浮点指令,是不 ...

这倒是,不过幸好我的算法里基本没有除法和开方,都是一些矩阵运算而已..相当期待ARM出汇编的运算库啊。。。

出0入0汤圆

发表于 2013-5-28 09:25:08 | 显示全部楼层
ahuang227 发表于 2013-5-27 08:50
不知道这个样子对比是不是合理啊。还是硬件IO反转看的比较直观。

很多芯片外设的时钟跟cpu的并不相同吧,如果只看IO翻转的速度会不会没办法客观的评价处理器的运算能力?

出0入8汤圆

发表于 2013-5-28 09:35:39 | 显示全部楼层
在我内心深处,28335是不算做DSP的。他的浮点运算。。。
楼主是否有条件对比一下 6713 之类的浮点dsp 和F4的性能?

出0入8汤圆

发表于 2013-5-28 09:38:20 | 显示全部楼层
前提是 6713 工作在和F4类似的 200M的主频下。

出0入0汤圆

发表于 2013-5-28 13:10:12 | 显示全部楼层
ppa2001 发表于 2013-5-27 16:29
以前用F4芯片的硬件IIC读数据,偶尔会死机!而且复位无效,只能重新上电。虽然可以用模拟IIC,但觉得不爽。 ...

F4有某些硬伤

出0入0汤圆

发表于 2013-5-28 13:26:28 | 显示全部楼层
风见流雅 发表于 2013-5-28 09:25
很多芯片外设的时钟跟cpu的并不相同吧,如果只看IO翻转的速度会不会没办法客观的评价处理器的运算能力? ...

如果IO翻转不够快....多么快的运算都没有任何意义....任何运算最终结果都是IO翻转....

出0入0汤圆

发表于 2013-5-28 16:40:29 | 显示全部楼层
liu_tianyi 发表于 2013-5-28 01:43
这个相当赞同,不过飞控上我宁愿用2个STM32F4跑双余度也不想搞一个F28335。。。 ...

这是当然,如果我做飞控 首选f4~

出0入0汤圆

 楼主| 发表于 2013-5-28 16:45:27 | 显示全部楼层
f8023m 发表于 2013-5-28 13:10
F4有某些硬伤

哦?怎么说?

出0入0汤圆

 楼主| 发表于 2013-5-28 16:46:37 | 显示全部楼层
tongdayusu 发表于 2013-5-28 09:35
在我内心深处,28335是不算做DSP的。他的浮点运算。。。
楼主是否有条件对比一下 6713 之类的浮点dsp 和F4 ...

我手边没有。。而且我觉得F28335和STM32F4的定位是差不多的。。

出0入25汤圆

发表于 2013-5-28 16:48:43 | 显示全部楼层
f8023m 发表于 2013-5-28 13:10
F4有某些硬伤

敢问大侠,有多硬???

出0入0汤圆

发表于 2013-5-28 16:55:29 | 显示全部楼层
调用算法库试试,不用TI的算法库基本上不能实现DSP的流水线计算,运算能力减少很多。

出0入0汤圆

发表于 2013-5-28 16:59:19 | 显示全部楼层
adce 发表于 2013-5-28 13:26
如果IO翻转不够快....多么快的运算都没有任何意义....任何运算最终结果都是IO翻转....
...

这个是肯定不够的,可以做多次运算,但是不能有循环,或者循环跳转的时间需要算一下

出0入0汤圆

发表于 2013-5-29 03:35:15 | 显示全部楼层
如果矩阵的尺寸比较固定,那么自己手工写些专用的矩阵函数,可以有比较大的优化空间,特别是存储器访问的节奏方面,加上手动的循环展开,这方面可以省下不少周期....反正F4的flash那么大,对吧,不用白不用,毕竟现在大家用得很多F4都是第一版,ART加速和指令预取竟然不能同时打开,对性能还是有一点损失的,跳转能避免还是避免比较好啊

出0入0汤圆

发表于 2013-5-29 08:29:40 | 显示全部楼层
MARK.
           

出0入0汤圆

发表于 2013-5-29 12:43:50 | 显示全部楼层
adce 发表于 2013-5-28 13:26
如果IO翻转不够快....多么快的运算都没有任何意义....任何运算最终结果都是IO翻转....
...

就拿楼主的姿态解算算法来说,IO速度并不是限制系统整体速度的瓶颈。大部分的系统时间都消耗在矩阵运算和乘除法上,这时候cpu的速度的提升比起I/O的翻转速度提升对于整个系统实时性的提高效果要好很多

出0入0汤圆

发表于 2013-5-29 12:57:41 | 显示全部楼层
好东西,不过现在玩F4的还真是不多

出0入0汤圆

发表于 2013-5-29 12:59:00 | 显示全部楼层
adce 发表于 2013-5-28 13:26
如果IO翻转不够快....多么快的运算都没有任何意义....任何运算最终结果都是IO翻转....
...

对于飞控来说,重要的是控制运算周期,运算过程跟IO是没关系的,IO翻转速率已经足够用了吧

出0入0汤圆

发表于 2013-5-29 15:21:48 | 显示全部楼层
rantingting 发表于 2013-5-29 12:59
对于飞控来说,重要的是控制运算周期,运算过程跟IO是没关系的,IO翻转速率已经足够用了吧 ...

@风见流雅  

你们敢认真的把帖子看完么.....

我说的是算法运算前把IO置高...运算完成后把IO置低...用示波器看IO高的时长...
用来计算具体用了多长时间...比Systick要准的多....

有人说IO翻转的速率不同MCU是不同的...有的MCU IO翻转速度很慢...这么比不公平...
任何运算最终结果都是IO翻转...MCU如果因为IO翻转慢而运算成绩低...那么就是性能差...没什么好说的...

IO翻转真的足够了...

用IO看算法时间很科学...

出0入0汤圆

发表于 2013-5-29 16:52:13 | 显示全部楼层
此贴比较有营养

出0入0汤圆

发表于 2013-5-29 17:26:29 | 显示全部楼层
我觉得这种测试如果用复杂的算法最好开到最大优化然后比较,否则有可能是编译器拖后退

出0入0汤圆

发表于 2013-5-29 19:53:38 | 显示全部楼层
adce 发表于 2013-5-29 15:21
@风见流雅  

你们敢认真的把帖子看完么.....

多谢指教,明白你的意思了,是有道理得。不过我觉着多来几个周期的运算,最后根据总时间计算出单周期时间,这样是不是可以把IO翻转所占用的时间是不是几乎可以忽略不计了

出0入0汤圆

发表于 2013-5-29 20:06:57 | 显示全部楼层
rantingting 发表于 2013-5-29 19:53
多谢指教,明白你的意思了,是有道理得。不过我觉着多来几个周期的运算,最后根据总时间计算出单周期时间 ...

嗯...问题是真能保证周期是准的么...

出0入0汤圆

发表于 2013-5-29 21:17:59 | 显示全部楼层
adce 发表于 2013-5-29 20:06
嗯...问题是真能保证周期是准的么...

想办法保证啊

出0入0汤圆

发表于 2013-5-29 21:46:03 | 显示全部楼层
http://www.ti.com/lit/ug/sprueo2a/sprueo2a.pdf
28335全靠这些指令了,同样的指令比F4没优势,数学运算的话,全靠那些特殊指令,通用指令并没有优势

出0入0汤圆

发表于 2013-5-29 21:51:12 | 显示全部楼层
看这条指令如何,就平方根的倒数,也是2个周期完成
EISQRTF32 RaH, RbH 32-bit Floating-Point Square-Root Reciprocal Approximation
Operands
RaH floating-point destination register (R0H to R7H)
RbH floating-point source register (R0H to R7H)
Opcode LSW: 1110 0110 1001 0010
MSW: 0000 0000 00bb baaa
Description This operation generates an estimate of 1/sqrt(X) in 32-bit floating-point format accurate
to approximately 8 bits. This value can be used in a Newton-Raphson algorithm to get a
more accurate answer. That is:
Ye = Estimate(1/sqrt(X));
Ye = Ye*(1.5 - Ye*Ye*X/2.0)
Ye = Ye*(1.5 - Ye*Ye*X/2.0)

出0入0汤圆

发表于 2013-5-29 22:04:43 | 显示全部楼层
我觉得离线测试效果会更好。。。

出0入0汤圆

 楼主| 发表于 2013-5-30 04:01:59 | 显示全部楼层
luck851 发表于 2013-5-28 16:55
调用算法库试试,不用TI的算法库基本上不能实现DSP的流水线计算,运算能力减少很多。 ...

已经用了哦~两者都调用了各自厂家的算法库了,但是ARM这边只有SIN,COS,SQRT这三个,缺少atan2这样的函数,因为我算法里用到了2次atan2函数,所以会拖一点点后腿。

出0入0汤圆

 楼主| 发表于 2013-5-30 04:05:13 | 显示全部楼层
adce 发表于 2013-5-29 15:21
@风见流雅  

你们敢认真的把帖子看完么.....

IO翻转的确更加直观,但是如果说比CPU计数器更加准确这点不敢苟同,IO翻转还有一个测量的过程参与,引入了测量噪声,应该说是不如CPU计数器来得更加精确的。

出0入0汤圆

发表于 2013-6-15 17:54:52 | 显示全部楼层
标记一下,以后看看。

出0入0汤圆

发表于 2013-6-15 22:32:06 | 显示全部楼层
MARK!
相当关注,希望有条件的继续对比下。

出0入0汤圆

发表于 2013-6-16 13:03:13 | 显示全部楼层
吸收营养。

出0入0汤圆

发表于 2013-6-20 10:38:00 | 显示全部楼层
循环算用,算前算后IO翻转是最正确 ,通过仿真器看周期会有仿真器的影响,我用2812带仿真器和不带仿真器速度是不一样的

出0入0汤圆

发表于 2013-6-20 11:08:22 | 显示全部楼层
顶一个
看CPU执行某一个任务的时间,最简单的也是最准确的就是IO翻转了,同时不要开中断,保护CPU是连续执行的。
楼上有说IO速度不够快,其实这个很好解决,算一次翻转IO时间太短的话,就多算几次,最后的时间再除以次数。
的确有些片子在仿真时并不是全速运行的,像ST的Systick这种软硬结合的时间,准确度就很难说了。
所以应该单任务,离线测试,直接用示波器测波形。

出0入0汤圆

发表于 2013-6-27 16:31:23 | 显示全部楼层
正计划用ADIS16488开发一个产品,一直犹豫F4是否胜任一堆矩阵算法。看了楼主的测试,感觉心底有点普了。
ADIS16488太贵,不敢乱折腾。

出0入0汤圆

发表于 2013-6-27 16:39:05 | 显示全部楼层
好厉害学习了 ,如果用汇编测试就更好了

出0入0汤圆

发表于 2013-7-10 15:56:00 | 显示全部楼层
做个记号

出0入0汤圆

发表于 2013-7-11 09:01:24 | 显示全部楼层
本帖最后由 szszjdb 于 2013-7-11 09:06 编辑

感觉TI/ADI等传统DSP厂家,在库方面比ARM好太多了,全部经过反复优化。ARM基本不重视这块,没投资源去开发,DSP库升级很慢,功能很少。所以在运算方面,ARM虽然硬件上来了但整体平台还是不行呀。当然反过来看,ARM还有潜力。

面对ARM的步步紧逼,不知传统DSP厂,TI/ADI怎么想,等哪天ARM的库完善了,主频上去了,工艺55nm, 他们怎么办,还卖那么贵?传统DSP是否会消亡?  好像在某文章看到了这个预言。

出0入0汤圆

发表于 2013-7-11 09:16:21 | 显示全部楼层
arm目前要用SIMD和DSP指令,主要还是要靠手工汇编。。。。编译器基本上很难充分利用新指令。。。。

出0入0汤圆

发表于 2013-7-11 09:17:05 | 显示全部楼层
            mark

出0入0汤圆

发表于 2013-7-12 09:03:57 | 显示全部楼层
赞同72楼兄弟。库的不完善太不方便用了,正如上面有兄弟提到,ATAN2函数,DSP库就没有,而标准MATH中的可能又很慢。再比如,一些算法,传统DSP已经有现成库,用F4还得自己写。多问句,假如需要用DSP, 您是选传统DSP还是STM32F4 或者LPC4X? 您怎么取舍?

出0入0汤圆

发表于 2013-7-12 09:29:46 | 显示全部楼层
围观 学习

出0入0汤圆

发表于 2013-8-11 16:20:22 | 显示全部楼层
受教,学习!

出0入0汤圆

发表于 2013-9-20 23:59:16 | 显示全部楼层
jisaowang 发表于 2013-7-11 09:16
arm目前要用SIMD和DSP指令,主要还是要靠手工汇编。。。。编译器基本上很难充分利用新指令。。。。 ...

哈,又在这里看到你了。如果真要用自己可以封装一些算法,不是什么大问题,而且我经常用的fft在st的dsp库里面刚好有

主要是价格,易用性,这方面arm的m4比TI的dsp好太多……

出0入0汤圆

发表于 2013-9-21 00:26:00 | 显示全部楼层
楼主可以按照67楼的说法测试一下,处理器的主频时钟在不同状态下,确实可能存在不确定性,所以单任务+示波器捕捉IO翻转会更准一些。

出0入0汤圆

发表于 2013-9-22 14:59:53 | 显示全部楼层
留待日后验证

出0入0汤圆

发表于 2013-9-22 17:07:59 | 显示全部楼层
本帖最后由 kms2hh 于 2013-9-22 17:18 编辑
szszjdb 发表于 2013-7-11 09:01
感觉TI/ADI等传统DSP厂家,在库方面比ARM好太多了,全部经过反复优化。ARM基本不重视这块,没投资源去开发 ...


传统DSP厂家还有摩托罗拉的MC56000,DSP56300系列,性能可靠,工业军事上用的比较多,不过价格贵,不好卖。那位大神有条件的话,测测啊!

出0入0汤圆

发表于 2013-9-22 17:24:26 | 显示全部楼层
adce 发表于 2013-5-29 15:21
@风见流雅  

你们敢认真的把帖子看完么.....

对于CortexM内核来说,SysTick的计时精度是相当高的;前提是相关的计时时钟连续,systick没发生溢出。

如果对于时钟树设置正确,Systick能正确计量指令执行的时钟周期数。误差就是读Systick总线仲裁那块的问题。

出0入0汤圆

发表于 2013-9-29 19:24:51 | 显示全部楼层
我也在玩STM32和TMS320F28335.耶耶耶耶耶额夜夜夜夜

出0入0汤圆

发表于 2013-9-29 19:38:21 | 显示全部楼层
DSP的优势在于并行乘加,如FIR运算。

出0入0汤圆

发表于 2013-10-7 11:55:31 | 显示全部楼层
楼主能发出代码共享下吗?

出0入0汤圆

发表于 2013-10-7 13:49:24 | 显示全部楼层
Mark一下……现在有意转向STM32的F4系列,但是对这个片子还是没有吃透,不知道拿来用的话到底在哪几个方面会有明显的提高。

出0入0汤圆

发表于 2013-10-27 09:49:39 | 显示全部楼层
不知道做FFT,用F28335和F4哪个更好呢?

出0入0汤圆

发表于 2013-11-19 22:07:00 | 显示全部楼层
苹果520 发表于 2013-5-27 09:00
怎么开启FPU啊,我还不知道怎么检查开启了FPU

http://wmbp520.blog.163.com/blog ... 842012111615745969/

出0入0汤圆

发表于 2013-11-19 22:42:26 | 显示全部楼层
zichuan 发表于 2013-11-19 22:07
http://wmbp520.blog.163.com/blog/static/2125722842012111615745969/

好的,谢谢了!!

出0入0汤圆

发表于 2013-11-19 22:51:24 | 显示全部楼层
MARK!!!!!!!

出0入0汤圆

发表于 2013-11-20 10:01:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-11-20 10:16:34 | 显示全部楼层
这种对比还是很有实际意义的啊

出0入0汤圆

发表于 2013-12-19 11:16:27 | 显示全部楼层
标记    Mark!

出0入0汤圆

发表于 2013-12-19 12:06:16 | 显示全部楼层
运算应该还是dsp快

出0入0汤圆

发表于 2013-12-19 17:00:06 | 显示全部楼层
又来关注一次   好贴…………

出0入0汤圆

发表于 2013-12-28 12:48:50 | 显示全部楼层
liu_tianyi 发表于 2013-5-28 03:23
我犯了一个严重的错误,误以为KEIL的DEFAULT就是不优化了,其实是Default是高度优化,LEVEL-O1才是不优化。 ...

楼主ARM也是哈弗架构啊。也有流水线啊。

出0入0汤圆

发表于 2014-1-8 13:45:17 | 显示全部楼层
现在开始有意F4了,上手快,DSP还没玩过

出0入0汤圆

发表于 2014-1-8 14:37:19 | 显示全部楼层
不是很靠谱,我看别人测试的,TI的2812定点DSP用TI的库算浮点都比F407要快一点。这个28335可是浮点的呢,我该相信谁?

出0入0汤圆

发表于 2014-1-8 14:47:53 | 显示全部楼层
Flyback 发表于 2013-5-27 11:49
国外很多DIY飞控早已用上F4

咱这里都打算使用双F4结构了:增稳板一个F4,控制板一个F4 ...

PX4么???

出0入0汤圆

发表于 2014-4-20 20:31:05 | 显示全部楼层
看看。。。。

出0入0汤圆

发表于 2014-5-18 19:54:52 | 显示全部楼层
Mark!!!!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-27 02:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表