Energy-aware multi-threaded software systems: Measuring and modelling software energy consumption on a multi-threaded embedded processor architecture