diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-20 12:08:42 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-20 13:52:19 +0200 |
commit | e0dd8a5ad830798bc8082b03b8c42c32fb9660e0 (patch) | |
tree | d147bfc4d670fcdfbd2e2d2e75eb209f92e07df1 /c/src/lib/libbsp/mips/csb350/timer | |
parent | bsps: Move startup files to bsps (diff) | |
download | rtems-e0dd8a5ad830798bc8082b03b8c42c32fb9660e0.tar.bz2 |
bsps: Move benchmark timer to bsps
This patch is a part of the BSP source reorganization.
Update #3285.
Diffstat (limited to 'c/src/lib/libbsp/mips/csb350/timer')
-rw-r--r-- | c/src/lib/libbsp/mips/csb350/timer/timer.c | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/c/src/lib/libbsp/mips/csb350/timer/timer.c b/c/src/lib/libbsp/mips/csb350/timer/timer.c deleted file mode 100644 index 30dbfe836b..0000000000 --- a/c/src/lib/libbsp/mips/csb350/timer/timer.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * This file implements a benchmark timer using the count/compare - * CP0 registers. - * - * Copyright (c) 2005 by Cogent Computer Systems - * Written by Jay Monkman <jtm@lopingdog.com> - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#include <assert.h> - -#include <bsp.h> -#include <rtems/btimer.h> - -bool benchmark_timer_find_average_overhead; -uint32_t tstart; - -void benchmark_timer_initialize(void) -{ - __asm__ volatile ("mfc0 %0, $9\n" : "=r" (tstart)); - /* tick time in picooseconds */ -} - -#define AVG_OVERHEAD 0 /* It typically takes N instructions */ - /* to start/stop the timer. */ -#define LEAST_VALID 1 /* Don't trust a value lower than this */ - /* tx39 simulator can count instructions. :) */ - -benchmark_timer_t benchmark_timer_read(void) -{ - uint32_t total; - uint32_t cnt; - - __asm__ volatile ("mfc0 %0, $9\n" : "=r" (cnt)); - - total = cnt - tstart; - total = (total * 1000) / 396; /* convert to nanoseconds */ - - - if ( benchmark_timer_find_average_overhead == true ) - return total; /* in one microsecond units */ - - if ( total < LEAST_VALID ) - return 0; /* below timer resolution */ - - return total - AVG_OVERHEAD; -} - -void benchmark_timer_disable_subtracting_average_overhead( - bool find_flag -) -{ - benchmark_timer_find_average_overhead = find_flag; -} |