| #ifndef _JTEST_CYCLE_H_ |
| #define _JTEST_CYCLE_H_ |
| |
| /*--------------------------------------------------------------------------------*/ |
| /* Includes */ |
| /*--------------------------------------------------------------------------------*/ |
| |
| #include "jtest_fw.h" /* JTEST_DUMP_STRF() */ |
| #include "jtest_systick.h" |
| #include "jtest_util.h" /* STR() */ |
| |
| /*--------------------------------------------------------------------------------*/ |
| /* Declare Module Variables */ |
| /*--------------------------------------------------------------------------------*/ |
| extern const char * JTEST_CYCLE_STRF; |
| |
| /*--------------------------------------------------------------------------------*/ |
| /* Macros and Defines */ |
| /*--------------------------------------------------------------------------------*/ |
| |
| /** |
| * Wrap the function call, fn_call, to count execution cycles and display the |
| * results. |
| */ |
| /* skipp function name + param |
| #define JTEST_COUNT_CYCLES(fn_call) \ |
| do \ |
| { \ |
| uint32_t __jtest_cycle_end_count; \ |
| \ |
| JTEST_SYSTICK_RESET(SysTick); \ |
| JTEST_SYSTICK_START(SysTick); \ |
| \ |
| fn_call; \ |
| \ |
| __jtest_cycle_end_count = \ |
| JTEST_SYSTICK_VALUE(SysTick); \ |
| \ |
| JTEST_SYSTICK_RESET(SysTick); \ |
| JTEST_DUMP_STRF(JTEST_CYCLE_STRF, \ |
| STR(fn_call), \ |
| (JTEST_SYSTICK_INITIAL_VALUE - \ |
| __jtest_cycle_end_count)); \ |
| } while (0) |
| */ |
| #ifndef ARMv7A |
| |
| #define JTEST_COUNT_CYCLES(fn_call) \ |
| do \ |
| { \ |
| uint32_t __jtest_cycle_end_count; \ |
| \ |
| JTEST_SYSTICK_RESET(SysTick); \ |
| JTEST_SYSTICK_START(SysTick); \ |
| \ |
| fn_call; \ |
| \ |
| __jtest_cycle_end_count = \ |
| JTEST_SYSTICK_VALUE(SysTick); \ |
| \ |
| JTEST_SYSTICK_RESET(SysTick); \ |
| JTEST_DUMP_STRF(JTEST_CYCLE_STRF, \ |
| (JTEST_SYSTICK_INITIAL_VALUE - \ |
| __jtest_cycle_end_count)); \ |
| } while (0) |
| |
| #else |
| /* TODO */ |
| #define JTEST_COUNT_CYCLES(fn_call) \ |
| do \ |
| { \ |
| fn_call; \ |
| } while (0) |
| |
| #endif |
| |
| #endif /* _JTEST_CYCLE_H_ */ |
| |
| |