嵌入式软件的Mips计算

Ily*_*lya 6 c embedded performance measurement

我最近(并反复)询问客户关于运行我们软件所需的MIPS.通常我们能够通过向客户解释这实际上取决于cpu/os/hw(我们的软件是高度可移植的)和/或用例(即我们的软件如何使用)来摆脱这些问题.

但我最后一个不仅非常顽固,而且还提供了顽固的充分理由.:)他想要估计,因为他不确定自己是否有足够的能力运行我们的软件,所以在此估算之前购买软件是不合逻辑的.(我们无法提供演示/评估,因为在此特定平台上运行需要大量工作.)

而现在的问题是:有人在任何软件的任何部分都有经验吗?任何现实生活中的例子都会非常有用.我可以选择在许多操作系统和许多硬件上运行我们的软件.因此,如果您知道在任何硬件上进行此类估算的任何工具,我有可能使用它或者至少可以获得一个想法.知道我只知道如何测量eCosPro OS上的CPU负载.

编辑:

使用探针实际上是一个好主意,假设我可以创建一个控制环境,其中只有我的软件运行所有可以计数的指令是我的,我猜探针有一个接口来做它.实际上我有几个不同的硬件调试器,如果有人有经验怎么做将是非常好的,我会明天阅读一些文档,希望能找到这方面的东西.

Dan*_*Dan 4

好吧,你意识到这充满了免责声明和警告——CPU 速度、内存速度、缓存命中、MMU 页表刷新、总线争用等……(如果是重型嵌入式系统)所有这些因素都会影响决策....

话说回来……我要做的就是这个。获取一个实时操作系统(跟我一起),也许像 FreeRTOS(免费,真是令人惊讶)或 u/C-OS-II(不免费用于商业用途,也许 3000 美元)。这些内核允许您对代码进行检测以计算空闲 CPU 周期(空闲任务旋转循环)。

因此,将您的整个应用程序(或客户的应用程序)作为你们一致同意的板上(例如 MPC860 板、ARM7 板等)上唯一(非空闲)任务来运行。通过 RTOS 测量板上的 CPU 百分比。(例如“在以 60 MHz 运行的 Flibber 板上,我们的应用程序使用了 12% 的 CPU。”)

如果他们不给你更多,反之亦然,这听起来对他们来说是一个相当合理的长度。

好处是,一旦您完成了此操作,您可以将工作重新用于其他目标和/或板,也许这些数字将帮助您增加销售额和/或调整/优化您的软件。

祝你好运!