EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在DSP671x上使用Timer统计信号处理算法的时间消耗
% Y6 M$ T _4 P* y7 _) B代码实例
5 E, J3 m+ {3 |+ U( g. k
+ z+ q. V' w0 k E, u- lhTimer = TIMER_open(TIMER_DEVANY,0); /* open a timer */7 o3 C6 P l! u% D4 f" X) o {. q
3 R/ L( Q, }3 ?; m
/* Configure the timer. 1 count corresponds to 4 CPU cycles in C67 */$ w5 Y* B! O0 D v
/* control period initial value */
) L6 V! Z( q2 Z' a+ D8 ETIMER_configArgs(hTimer, 0x000002C0, 0xFFFFFFFF, 0x00000000);
9 N" s. m. W4 ?+ V" o ^1 Z( w3 \8 A( N+ L3 h2 S* N, M2 i8 C
/* Compute the overhead of calling the timer. */
& l5 b+ T9 D2 `3 `, n! K6 @! i0 E: ~start = TIMER_getCount(hTimer); /* to remove L1P miss overhead */6 B$ w& K# E% y6 k: d! i
start = TIMER_getCount(hTimer); /* get count */4 F3 U3 e# o& ]4 v9 R; C. l
stop = TIMER_getCount(hTimer); /* get count */5 V( T1 X C+ O6 g. B
, {( H( l7 f: e& w: _& f4 aoverhead = stop - start;; |* F- Y5 [7 {. A) `8 w
start = TIMER_getCount(hTimer); /* get count */9 g: c* z- a6 I: K2 D+ k9 d
& y; M7 b! I4 K$ q5 {+ K3 a
/* Call a function here. */2 h8 r2 c+ a. f3 v/ p
4 T: Y* a$ T, ~3 v/* get count */
; ^; ?& l9 [% V" E. L8 Kdiff = (TIMER_getCount(hTimer) – start) ? overhead;
; ]" F! F) }2 `" L8 XTIMER_close(hTimer);
; G" S5 S) q0 S1 j6 o9 Q; h8 Jprintf(”%d cycles \n”, diff*4);# e! |* v& f, r- R+ T
' A2 \3 _# L8 h
) a9 G/ p; O( j# K# T
注意,C6713上定时器的一个计数值对应4个时钟周期。 overhead表示Timer本身配置过程的时钟消耗,所以有diff计算, diff = (TIMER_getCount(hTimer) – start) ? overhead;, v& ?/ }# ^+ C9 a: G0 J
: B; O9 R0 Q1 }6 m4 l |