我建议不要使用任何基于 ARM7 的新设计——它是一种传统的 ARM 架构。您应该检查供应商的零件状态和计划的废弃任何您打算设计的零件。没有供应商发布基于 ARM7 的新设计。
我还建议对于 DSP 算法,Cortex-M4 的 DSP 特性比它的浮点更重要。ARM Cortex-M CMSIS 包括一个利用这一点的 DSP 库。无论哪种方式,定点 DSP 算法都将比使用浮点更有效。
Cortex-M 是一种效率更高的设计,ARM7 实现了 1.2 DMIPS/MHz,而 ARM7 的效率低于 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 负载或多或少可以忽略不计。
下图说明了 ARM7 与 Cortex-M4 的对比情况。后者是更高的性能和更大的能力。在相同的时钟频率下,Cortex-M4 在性能尺度上位于 ARM9 和 ARM11 之间。
我认为您不需要执行任何比较 ARM7 和 Cortex M4 的基准测试,因为广泛的性能数据已经可用。您或许可以做的是测量现有应用程序在其当前平台上的 CPU 负载。如果它很低(可能 < 20%)并且大部分时间都处于空闲状态,那么 ARM7 可能是可行的。当然,如果您的应用程序没有在 RTOS 或具有空闲任务的调度程序上运行,那么测量真正的 CPU 负载可能会很困难。