Yes, TFA article says they never activated any power-saving, so the idle loop is more or less just staying in active mode, which has the same power consumption as doing calculations.
But one thing the article didn't point out is what hardware peripherals each firmware activated by default. Eg, activating UART might use default pins and activate an UART RX on a pin, which might incur a mA-order penalty. Hence, a useful first step in optimizing power is to identify what functionality you need and ensure all else is always powered down (eg uart rx, clocks and timers, radio peripherals.
The arduino framework is optimised for ease of use. Battery powered devices were not the target back then when it was created. This benchmark should have used one of the many techniques that optimise for power consumption.
Comments
Yes, TFA article says they never activated any power-saving, so the idle loop is more or less just staying in active mode, which has the same power consumption as doing calculations.
But one thing the article didn't point out is what hardware peripherals each firmware activated by default. Eg, activating UART might use default pins and activate an UART RX on a pin, which might incur a mA-order penalty. Hence, a useful first step in optimizing power is to identify what functionality you need and ensure all else is always powered down (eg uart rx, clocks and timers, radio peripherals.
The arduino framework is optimised for ease of use. Battery powered devices were not the target back then when it was created. This benchmark should have used one of the many techniques that optimise for power consumption.
RISC-V conveniently provides a `wfi` (wait for interrupts) instruction or hint -- it can act as a nop when not implemented.