diff --git a/source/hal/source/platform/mps3/source/timer_mps3.c b/source/hal/source/platform/mps3/source/timer_mps3.c
index 6330269..7ce3002 100644
--- a/source/hal/source/platform/mps3/source/timer_mps3.c
+++ b/source/hal/source/platform/mps3/source/timer_mps3.c
@@ -20,6 +20,8 @@
 #include "smm_mps3.h"   /* Memory map for MPS3. */
 
 static uint64_t cpu_cycle_count = 0;    /* 64-bit cpu cycle counter */
+static const char* unit_cycles = "cycles";
+static const char* unit_ms = "milliseconds";
 
 /**
  * @brief   Gets the system tick triggered cycle counter for the CPU.
@@ -69,12 +71,10 @@
 #endif /* defined (ARM_NPU) */
 }
 
-pmu_counters platform_get_counters(void)
+void platform_get_counters(pmu_counters* counters)
 {
-    pmu_counters platform_counters = {
-        .num_counters = 0,
-        .initialised = true
-    };
+    counters->num_counters = 0;
+    counters->initialised = true;
     uint32_t i = 0;
 
 #if defined (ARM_NPU)
@@ -84,20 +84,20 @@
             npu_counters.npu_evt_counters[i].counter_value,
             npu_counters.npu_evt_counters[i].name,
             npu_counters.npu_evt_counters[i].unit,
-            &platform_counters);
+            counters);
     }
     for (i = 0; i < ETHOSU_DERIVED_NCOUNTERS; ++i) {
         add_pmu_counter(
             npu_counters.npu_derived_counters[i].counter_value,
             npu_counters.npu_derived_counters[i].name,
             npu_counters.npu_derived_counters[i].unit,
-            &platform_counters);
+            counters);
     }
     add_pmu_counter(
         npu_counters.npu_total_ccnt,
         "NPU TOTAL",
-        "cycles",
-        &platform_counters);
+        unit_cycles,
+        counters);
 #endif /* defined (ARM_NPU) */
 
 #if defined(CPU_PROFILE_ENABLED)
@@ -111,14 +111,14 @@
     add_pmu_counter(
             mps3_counters.counter_systick,
             "CPU TOTAL",
-            "cycles",
-            &platform_counters);
+            unit_cycles,
+            counters);
 
     add_pmu_counter(
             get_tstamp_milliseconds(&mps3_counters),
             "DURATION",
-            "milliseconds",
-            &platform_counters);
+            unit_ms,
+            counters);
 #endif /* defined(CPU_PROFILE_ENABLED) */
 
 #if !defined(CPU_PROFILE_ENABLED)
@@ -129,8 +129,6 @@
     UNUSED(i);
 #endif /* !defined(ARM_NPU) */
 #endif /* !defined(CPU_PROFILE_ENABLED) */
-
-    return platform_counters;
 }
 
 uint32_t get_mps3_core_clock(void)
