Subversion Repositories canSerial

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
#ifndef _JTEST_CYCLE_H_
2
#define _JTEST_CYCLE_H_
3
 
4
/*--------------------------------------------------------------------------------*/
5
/* Includes */
6
/*--------------------------------------------------------------------------------*/
7
 
8
#include "jtest_fw.h"           /* JTEST_DUMP_STRF() */
9
#include "jtest_systick.h"
10
#include "jtest_util.h"         /* STR() */
11
 
12
/*--------------------------------------------------------------------------------*/
13
/* Declare Module Variables */
14
/*--------------------------------------------------------------------------------*/
15
extern const char * JTEST_CYCLE_STRF;
16
 
17
/*--------------------------------------------------------------------------------*/
18
/* Macros and Defines */
19
/*--------------------------------------------------------------------------------*/
20
 
21
/**
22
 *  Wrap the function call, fn_call, to count execution cycles and display the
23
 *  results.
24
 */
25
/* skipp function name + param
26
#define JTEST_COUNT_CYCLES(fn_call)                     \
27
    do                                                  \
28
    {                                                   \
29
        uint32_t __jtest_cycle_end_count;               \
30
                                                        \
31
        JTEST_SYSTICK_RESET(SysTick);                   \
32
        JTEST_SYSTICK_START(SysTick);                   \
33
                                                        \
34
        fn_call;                                        \
35
                                                        \
36
        __jtest_cycle_end_count =                       \
37
            JTEST_SYSTICK_VALUE(SysTick);               \
38
                                                        \
39
                JTEST_SYSTICK_RESET(SysTick);                   \
40
        JTEST_DUMP_STRF(JTEST_CYCLE_STRF,               \
41
                        STR(fn_call),                   \
42
                        (JTEST_SYSTICK_INITIAL_VALUE -  \
43
                         __jtest_cycle_end_count));     \
44
    } while (0)
45
*/
46
#define JTEST_COUNT_CYCLES(fn_call)                     \
47
    do                                                  \
48
    {                                                   \
49
        uint32_t __jtest_cycle_end_count;               \
50
                                                        \
51
        JTEST_SYSTICK_RESET(SysTick);                   \
52
        JTEST_SYSTICK_START(SysTick);                   \
53
                                                        \
54
        fn_call;                                        \
55
                                                        \
56
        __jtest_cycle_end_count =                       \
57
            JTEST_SYSTICK_VALUE(SysTick);               \
58
                                                        \
59
                JTEST_SYSTICK_RESET(SysTick);                   \
60
        JTEST_DUMP_STRF(JTEST_CYCLE_STRF,               \
61
                        (JTEST_SYSTICK_INITIAL_VALUE -  \
62
                         __jtest_cycle_end_count));     \
63
    } while (0)
64
 
65
#endif /* _JTEST_CYCLE_H_ */