| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #ifndef _TIMING_H_
- #define _TIMING_H_
- #include "Test.h"
- #include "arm_math_types.h"
- #include "arm_math_types_f16.h"
- void initCycleMeasurement();
- void cycleMeasurementStart();
- void cycleMeasurementStop();
- Testing::cycles_t getCycles();
- #if defined(EXTBENCH) || defined(CACHEANALYSIS)
- extern unsigned long sectionCounter;
- #if defined ( __CC_ARM )
- #define dbgInst(imm) __asm volatile{ DBG (imm) }
- #elif defined ( __GNUC__ ) || defined ( __llvm__ )
- #define dbgInst(imm) __asm volatile("DBG %0\n\t" : :"Ir" ((imm)) )
- #else
- #error "Unsupported compiler"
- #endif
- #define startSectionNB(num) dbgInst(((num) & 0x7) | 0x8)
- #define stopSectionNB(num) dbgInst(((num) & 0x7) | 0x0)
- static inline void startSection() {
- switch(sectionCounter & 0x7)
- {
- case 0:
- startSectionNB(0);
- break;
- case 1:
- startSectionNB(1);
- break;
- case 2:
- startSectionNB(2);
- break;
- case 3:
- startSectionNB(3);
- break;
- case 4:
- startSectionNB(4);
- break;
- case 5:
- startSectionNB(5);
- break;
- case 6:
- startSectionNB(6);
- break;
- case 7:
- startSectionNB(7);
- break;
- default:
- startSectionNB(0);
- }
- }
- static inline void stopSection() {
- switch(sectionCounter & 0x7)
- {
- case 0:
- stopSectionNB(0);
- break;
- case 1:
- stopSectionNB(1);
- break;
- case 2:
- stopSectionNB(2);
- break;
- case 3:
- stopSectionNB(3);
- break;
- case 4:
- stopSectionNB(4);
- break;
- case 5:
- stopSectionNB(5);
- break;
- case 6:
- stopSectionNB(6);
- break;
- case 7:
- stopSectionNB(7);
- break;
- default:
- stopSectionNB(0);
- }
-
- sectionCounter++;
- }
- #endif
- #endif
|