File tree Expand file tree Collapse file tree 1 file changed +14
-12
lines changed Expand file tree Collapse file tree 1 file changed +14
-12
lines changed Original file line number Diff line number Diff line change 3
3
4
4
class ScopedCycleCounter {
5
5
public:
6
- ScopedCycleCounter (uint64_t & dest) :
7
- dest_ (dest) {
8
- #ifndef DISABLE_DIAGNOSTIC_COMMANDS
6
+ static inline uint32_t getCycles () {
9
7
#ifdef TEENSYDUINO
10
- cycles_ = ARM_DWT_CYCCNT;
8
+ return ARM_DWT_CYCCNT - counted_cycles_ ;
11
9
#else
12
- cycles_ = DWT->CYCCNT ;
10
+ return DWT->CYCCNT - counted_cycles_ ;
13
11
#endif
12
+ }
13
+ ScopedCycleCounter (uint64_t & dest) :
14
+ dest_ (dest) {
15
+ #ifndef DISABLE_DIAGNOSTIC_COMMANDS
16
+ cycles_ = getCycles ();
14
17
#endif
15
18
}
16
19
~ScopedCycleCounter () {
17
20
#ifndef DISABLE_DIAGNOSTIC_COMMANDS
18
21
uint32_t cycles;
19
- #ifdef TEENSYDUINO
20
- cycles = ARM_DWT_CYCCNT - cycles_;
21
- ARM_DWT_CYCCNT = cycles_;
22
- #else
23
- cycles = DWT->CYCCNT - cycles_;
24
- DWT->CYCCNT = cycles_;
25
- #endif
22
+ cycles = getCycles () - cycles_;
23
+ noInterrupts ();
24
+ counted_cycles_ += cycles;
25
+ interrupts ();
26
26
dest_ += cycles;
27
27
#endif
28
28
}
29
29
private:
30
+ static uint32_t counted_cycles_;
30
31
uint32_t cycles_;
31
32
uint64_t & dest_;
32
33
};
33
34
35
+ uint32_t ScopedCycleCounter::counted_cycles_ = 0 ;
34
36
35
37
#endif
You can’t perform that action at this time.
0 commit comments