Arduino测量运行代码的能力

时间:2015-06-11 16:52:10

标签: arduino energy

我在熊金属上运行了c代码(没有操作系统)。代码接收一些传感器数据,执行计算,形成数据包并进行传输。电路板由电池供电。

我很想知道Jules每次操作消耗的能量。这可能吗?怎么会去做呢?

1 个答案:

答案 0 :(得分:0)

每条指令使用的焦耳数取决于您使用的处理器以及您正在查看的指令。我相信ARM和Atmel AVR处理器没有真正的硬件电源管理,这使事情变得更简单。

指令使用多少能量与它使用的硅片电路的数量和类型有关。这意味着尝试理论上计算焦耳数将会很复杂,因为它不仅仅与指令使用的周期数有关。

所以你必须通过实验来做。这就是我要做的事。

  1. 删除所有编译器优化
  2. 进行频率分析以找到您的热门操作并挑选最常用的操作。 (我假设我们不是在谈论ASM指令,而是“C”指令。)
  3. 写一个重复该指令的循环,比如20次,并让循环至少运行几秒
  4. 用电源更换电池。
  5. 使用串联电阻来测量注释中提到的功率,但(当然)适当地调整电压。
  6. 运行循环程序并获得功率的统计抽样。
  7. 为所有热门操作执行此操作。
  8. 计算程序的耗电量
  9. 根据程序执行的实际功率测量值验证电源使用情况
  10. 根据需要调整(即标准化)您的计算
  11. 您还必须考虑内存层次结构。访问片外存储器需要能量。当缓存操作或数据时,它将改变你的能量方程。

    我认为这应该有效,但不知道。祝你好运。