source: rtems/c/src/lib/libbsp/arm/rtl22xx/timer/timer.c @ 7829710

5
Last change on this file since 7829710 was 7829710, checked in by Sebastian Huber <sebastian.huber@…>, on 12/08/17 at 06:52:41

bsp/rtl22xx: Move libcpu files to BSP

Update #3254.

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/**
2 * @file
3 * @brief RTL22xx board Timer driver
4 *
5 * This uses Timer1 for timing measurments.
6 */
7
8/*
9 * By Ray Xu <rayx.cn@gmail.com>, modify form Mc9328mxl RTEMS DSP
10 *
11 * The license and distribution terms for this file may be
12 * found in the file LICENSE in this distribution or at
13 * http://www.rtems.org/license/LICENSE.
14 */
15
16#include <bsp.h>
17#include <rtems.h>
18#include <rtems/btimer.h>
19#include <lpc22xx.h>
20#include "lpc_timer.h"
21
22uint32_t g_start;
23uint32_t g_freq;
24
25bool benchmark_timer_find_average_overhead;
26
27
28/*
29 * Set up Timer 1
30 */
31void benchmark_timer_initialize( void )
32{
33       g_freq = LPC22xx_Fpclk / 1000;
34}
35
36/*
37 *  The following controls the behavior of benchmark_timer_read().
38 *
39 *  AVG_OVEREHAD is the overhead for starting and stopping the timer.  It
40 *  is usually deducted from the number returned.
41 *
42 *  LEAST_VALID is the lowest number this routine should trust.  Numbers
43 *  below this are "noise" and zero is returned.
44 */
45
46#define AVG_OVERHEAD      0  /* It typically takes X.X microseconds */
47                             /* (Y countdowns) to start/stop the timer. */
48                             /* This value is in microseconds. */
49#define LEAST_VALID       1  /* Don't trust a clicks value lower than this */
50
51benchmark_timer_t benchmark_timer_read( void )
52{
53  return (T0TC/(LPC22xx_Fpclk/1000000));
54  /*
55   *  Total is calculated by taking into account the number of timer overflow
56   *  interrupts since the timer was initialized and clicks since the last
57   *  interrupts.
58   */
59}
60
61void benchmark_timer_disable_subtracting_average_overhead(bool find_flag)
62{
63  benchmark_timer_find_average_overhead = find_flag;
64}
65
Note: See TracBrowser for help on using the repository browser.