EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在DSP671x上使用Timer统计信号处理算法的时间消耗! l- b% l, }' N o; O
代码实例( S& Y H2 J5 G+ G
4 O. A! i" a( i, t x* k! ahTimer = TIMER_open(TIMER_DEVANY,0); /* open a timer */* l( `/ p/ S$ T8 g4 Z
) n# ^$ }" V) U0 ^7 S9 q/* Configure the timer. 1 count corresponds to 4 CPU cycles in C67 */
- s1 F2 `5 W2 X/* control period initial value */- }; R) ^7 X% B
TIMER_configArgs(hTimer, 0x000002C0, 0xFFFFFFFF, 0x00000000);* n+ _- W. J5 l, W _9 Z( a0 @
% L6 F& k: }4 h/* Compute the overhead of calling the timer. */! [+ A4 r6 d3 Z0 S' {7 v( l8 g1 ~
start = TIMER_getCount(hTimer); /* to remove L1P miss overhead */
`4 j: o& z$ cstart = TIMER_getCount(hTimer); /* get count */7 `0 F) Q+ b& M) X/ m
stop = TIMER_getCount(hTimer); /* get count */! |3 g8 m. ~: O3 C% F
. o5 L W6 x; c" R: }" h+ t
overhead = stop - start;
! s1 D1 l) U, `; n* }+ p& Cstart = TIMER_getCount(hTimer); /* get count */# C" f2 X% C3 Y7 n
# h# M: j$ m, x, x2 F/* Call a function here. */7 @$ ?+ j- l5 \" A' f. f
) ~$ t3 ~% R4 l& I l$ b% q
/* get count */
" D: }: g- p4 M6 z% E4 {2 |diff = (TIMER_getCount(hTimer) – start) ? overhead; * s! g/ ?# o( j+ h9 T
TIMER_close(hTimer); D/ `$ z. \8 m' v3 S) K# D: H
printf(”%d cycles \n”, diff*4);
. c; K6 R3 r# w& a1 h i' b- U% i( Y3 {, `$ l( I1 u
, [+ ~9 Q' d. C) R4 x w' P5 {注意,C6713上定时器的一个计数值对应4个时钟周期。 overhead表示Timer本身配置过程的时钟消耗,所以有diff计算, diff = (TIMER_getCount(hTimer) – start) ? overhead;
0 P/ ]0 @' J6 P& \' v& p5 O8 l5 `/ ?/ z" _8 P# e
|