summaryrefslogtreecommitdiff
path: root/source/hal/source/platform/mps3/include/timer_mps3.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/hal/source/platform/mps3/include/timer_mps3.h')
-rw-r--r--source/hal/source/platform/mps3/include/timer_mps3.h66
1 files changed, 16 insertions, 50 deletions
diff --git a/source/hal/source/platform/mps3/include/timer_mps3.h b/source/hal/source/platform/mps3/include/timer_mps3.h
index e1faf69..b370e89 100644
--- a/source/hal/source/platform/mps3/include/timer_mps3.h
+++ b/source/hal/source/platform/mps3/include/timer_mps3.h
@@ -17,10 +17,17 @@
#ifndef TIMER_MPS3_H
#define TIMER_MPS3_H
+#include "platform_pmu.h"
+
#include <stdint.h>
+#include <stdbool.h>
+
+#if defined (ARM_NPU)
+ #include "ethosu_profiler.h" /* Arm Ethos-U NPU profiling functions. */
+#endif /* defined (ARM_NPU) */
/* Container for timestamp up-counters. */
-typedef struct _mps3_time_counter {
+typedef struct mps3_pmu_counters_ {
uint32_t counter_1Hz;
uint32_t counter_100Hz;
@@ -29,65 +36,24 @@ typedef struct _mps3_time_counter {
/* Running at processor core's internal clock rate, triggered by SysTick. */
uint64_t counter_systick;
-} base_time_counter;
-
-
-/**
- * @brief Gets the MPS3 core clock
- * @return Clock rate in Hz expressed as 32 bit unsigned integer.
- */
-uint32_t get_mps3_core_clock(void);
+} mps3_pmu_counters;
/**
* @brief Resets the counters.
*/
-void timer_reset(void);
+void platform_reset_counters(void);
/**
* @brief Gets the current counter values.
- * @returns Mps3 timer counter.
- **/
-base_time_counter get_time_counter(void);
-
-/**
- * @brief Gets the duration elapsed between two counters in milliseconds.
- * @param[in] start Pointer to base_time_counter value at start time.
- * @param[in] end Pointer to base_time_counter value at end.
- * @returns Difference in milliseconds between the two give counters
- * expressed as an unsigned integer.
- **/
-uint32_t get_duration_milliseconds(base_time_counter *start,
- base_time_counter *end);
-
-/**
- * @brief Gets the duration elapsed between two counters in microseconds.
- * @param[in] start Pointer to base_time_counter value at start time.
- * @param[in] end Pointer to base_time_counter value at end.
- * @returns Difference in microseconds between the two give counters
- * expressed as an unsigned integer.
+ * @returns A populated instance of pmu_counters struct.
**/
-uint32_t get_duration_microseconds(base_time_counter *start,
- base_time_counter *end);
+pmu_counters platform_get_counters(void);
/**
- * @brief Gets the cycle counts elapsed between start and end.
- * @param[in] start Pointer to base_time_counter value at start time.
- * @param[in] end Pointer to base_time_counter value at end.
- * @return Difference in counter values as 32 bit unsigned integer.
- **/
-uint64_t get_cycle_count_diff(base_time_counter *start,
- base_time_counter *end);
-
-/**
- * @brief Enables or triggers cycle counting mechanism, if required
- * by the platform.
- **/
-void start_cycle_counter(void);
-
-/**
- * @brief Stops cycle counting mechanism, if required by the platform.
- **/
-void stop_cycle_counter(void);
+ * @brief Gets the MPS3 core clock
+ * @return Clock rate in Hz expressed as 32 bit unsigned integer.
+ */
+uint32_t get_mps3_core_clock(void);
/**
* @brief System tick interrupt handler.