2008-10-17
自从STM32推出后,我对它很感兴趣,由于它采用了ARM的Cortex-M3内核,所以很想了解一下其性能和ARM7相比究竟如何?很巧的机会知道了EDNCHINA,参加了EDN这次的团购活动,我得到了一块STM32开发板,使得我有机会测试一下这2种内核CPU的性能。
在测试之前先简单测试的2个平台,编译环境和测试方法。
Cortex-M3:ARM公司为要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的内核。Cortex-M3内核主打存储器和处理器的尺寸对产品成本影响极大的各种应用市场,是针对这些市场的低成本需求,专门开发设计的微处理器内核。Cortex-M3内核增强了芯片上集成的各种功能,包括把中断之间延迟降到6个CPU周期的嵌套向量中断控制器、允许在每一个写操作中修改单个数据位的独立位操作、分支指令预测、单周期乘法、硬件除法和高效的Thumb 2指令集,这些改良技术使Cortex-M3内核具有优异的性能、代码密度、实时性和低功耗。
ARM7TDMI-S:也是ARM公司的高性能(0.95 Dhrystone MIPS/MHz),低功耗的嵌入式应用CPU内核。该CPU内核带有实时调试接口,包含JTAG和嵌入式跟踪。能够执行32位ARM和16位Thumb指令。可以针对性能或代码大小,优化应用。当内核在Thumb状态下执行指令时,它可将代码规模降低超过30%,性能的损失却很小;而在ARM状态下执行指令时,内核的性能达到最大化。
测试平台对比:
| 平台1-STM3210FK(Cortex-M3) | 平台2-EasyARM2132(ARM7TDMI-S) | |
| MCU | STM32F103VB | LPC2132 |
| Speed | 72MHz(8MHz*9) | 55.296MHz(11.0592MHz*5) |
| Flash | 128KB | 64KB |
| RAM | 20KB | 16KB |
| 指令集 | Thumb-2(32位) | ARMv4(32位)、Thumb(16位) |
| 开发环境 | IAR for ARM v4.42 | Keil for ARM v3.05 |
| 32位整数运算性能(次/s) | ||||||
| MCU Type | 加 | 减 | 乘 | 除 | CPU clock(MHz) | 平均效能/MHz |
| STM32F103VB | 2181840 | 2181840 | 2181840 | 2000040 | 72 | 29672.08333 |
| LPC2132 | 1494520 | 1494520 | 1494520 | 1579920 | 55.296 | 27413.73698 |
评论0