From 24bf11eca11947d961cc9bb5f7d92dabff169e93 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 12 Feb 2014 10:31:38 +0100 Subject: score: Add CPU counter support Add a CPU counter interface to allow access to a free-running counter. It is useful to measure short time intervals. This can be used for example to enable profiling of critical low-level functions. Add two busy wait functions rtems_counter_delay_ticks() and rtems_counter_delay_nanoseconds() implemented via the CPU counter. --- c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c') diff --git a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c index 375b392cd3..54f09fa13f 100644 --- a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c +++ b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-clock-config.c @@ -12,6 +12,8 @@ * http://www.rtems.com/license/LICENSE. */ +#include + #include #include #include @@ -94,6 +96,15 @@ static void a9mpcore_clock_initialize(void) | A9MPCORE_GT_CTRL_IRQ_EN | A9MPCORE_GT_CTRL_COMP_EN | A9MPCORE_GT_CTRL_TMR_EN; + + rtems_counter_initialize_converter((uint32_t) periphclk); +} + +CPU_Counter_ticks _CPU_Counter_read(void) +{ + volatile a9mpcore_gt *gt = A9MPCORE_GT; + + return gt->cntrlower; } static void a9mpcore_clock_cleanup(void) -- cgit v1.2.3