我会建议对基于ARM7的任何新的设计 - 这是一个传统的ARM架构。您应该检查供应商的零件状态,并计划您计划设计的任何零件的过时。没有供应商正在发布基于ARM7的新设计。
我还建议,对于DSP算法,Cortex-M4的DSP特性比其浮点更重要。 ARM Cortex-M CMSIS包含一个利用此功能的DSP库。无论哪种方式,定点DSP算法都比使用浮点的效率高得多。
Cortex-M是一种效率更高的设计,ARM7实现了1.2 MHz DMIPS每MHz,而不到1.0 DMIPS每MHz。结合DSP指令,浮点和用于片上标志,RAM和外设的独立总线,使Cortex-M上的大部分代码显着加快。
Cortex-M架构定义了SYSCLK和中断控制器,在ARM7上这些是由芯片供应商定义的,各供应商之间的代码移植更加困难。
STM32F4xx器件运行频率高达180MHz;大多数ARM7器件都是60MHz或更低。
使用浮点执行比较几乎是毫无意义的。至少,浮点硬件将轻松胜过ARM7所需的软件浮点,其系数为5到10。除非您的应用程序能够应对性能下降,否则不适用于ARM7。但是,大多数应用程序不需要浮点。整数或定点算法的运行速度可能比软件浮点快5倍左右,因此与硬件浮点竞争。还请记住,Cortex-M4 FPU仅为单精度。
将Cortex-M3与Cortex-M4进行比较以测试应用程序对缺乏硬件FP和DSP支持的敏感性会更合理。
SDIO性能将受到SDIO接口和SD卡本身的限制(即使在相同的“速度等级”下,其性能差别很大) - 处理器本身的负载将非常低,如果您的应用程序正忙着等待而不是在等待SD卡时做一些有用的事情,那么大部分时间都在等待数据。 DMA传输的使用可能会使CPU负载或多或少可以忽略不计。
下图说明了与Cortex-M4相比,ARM7的定位方式。后者是更高的性能和更强的能力。在相同的时钟频率下,ARM9和ARM11之间的Cortex-M4站点在性能规模上。
我不认为你需要执行,因为广泛的性能数据比较ARM7和Cortex M4任何基准测试已经上市。你可能做的是测量你现有应用程序在其当前平台上的CPU负载。如果它很低(可能是< 20%),并且它大部分时间都处于闲置状态,那么ARM7可能是可行的。当然,如果您的应用程序没有在RTOS或调度程序上运行并且有空闲任务,那么测量真正的CPU负载可能会很困难。
你应该尝试制作类似于真正的节目将要做的事情。如果可能的话。 – 2013-05-09 14:34:18
或者用假数据运行真正的程序(以避免需要移植I/O)。但首先阅读这个不明身份替代部分的规格 - 并且船上是否有足够的内存? – 2013-05-09 15:26:12
为什么*“当然大约1兆内存”*? – Clifford 2013-05-09 21:57:51