c - 嵌入式软件的Mips计算

标签 c performance embedded measurement

我最近(并反复)被客户问及关于 MIPS 的问题需要运行我们的软件。通常我们可以通过向客户解释这实际上取决于 cpu/os/hw(我们的软件具有高度可移植性)和/或用例(即如何使用我们的软件)来摆脱这些问题。

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

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

编辑:

使用 probe 实际上是一个好主意,假设我可以创建一个控制环境,其中只有我的软件在运行我可以计算的所有指令都是我的,我猜 probe 有一个接口(interface)来执行它。实际上我有几个不同的硬件调试器,如果有人有经验如何去做那将是非常好的,无论如何我明天会阅读一些文档并希望能找到这方面的东西。

最佳答案

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

话虽如此....我会做的是这个。获得一个实时操作系统(和我在一起),也许像 FreeRTOS(免费,真是个惊喜)或 u/C-OS-II(商业用途不免费,可能 3000 美元)。这些内核允许您检测代码以计算空闲 CPU 周期(空闲任务自旋循环)。

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

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

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

祝你好运!

关于c - 嵌入式软件的Mips计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/296922/

相关文章:

c++ - 嵌入式系统的独立于硬件的C++ HAL

将 GPIO_TypeDef 从 STM32L1xx 转换为 STM32F10x

c - 为什么要执行跳转指令呢?

c - 百万链表+多线程的加锁策略(C)

Java Heap - 更改核心数后更改了 Young Space

flash - 在 Flash 中重绘数百个粒子的有效方法?

mysql - UNION ALL 需要几天时间。加速中?

c - 数据存入heap后,如何存入struct而不致栈溢出?

c - 石码厨师 : What is wrong with the code?

c - C中从文件中读取各种形式的数据并存储在链表中