EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在DSP671x上使用Timer统计信号处理算法的时间消耗
( D3 \& [! Y5 z3 M, s代码实例
3 I& l0 \& P$ H2 v# \5 |8 \- p1 r, B
4 O3 f+ A9 B% x0 V) jhTimer = TIMER_open(TIMER_DEVANY,0); /* open a timer */$ w" Z& r7 U7 O u8 y6 h1 @
2 b0 v% O3 t' o
/* Configure the timer. 1 count corresponds to 4 CPU cycles in C67 */! g& O: k3 h/ ~" B: \# d
/* control period initial value */4 Q) k4 Z# r, J3 Z5 @3 w
TIMER_configArgs(hTimer, 0x000002C0, 0xFFFFFFFF, 0x00000000);
, @1 V" M) A0 }" S8 ?3 O* j0 {* Q' d6 B
/* Compute the overhead of calling the timer. */# r1 M" J: \, d2 `
start = TIMER_getCount(hTimer); /* to remove L1P miss overhead */
) O! I' r1 n' h* J4 jstart = TIMER_getCount(hTimer); /* get count */+ n0 q8 i7 v4 x6 D$ ~" C9 D
stop = TIMER_getCount(hTimer); /* get count */
8 D4 Y, N6 w1 {4 R. }9 k
" J1 i& {7 B( s; N! Aoverhead = stop - start;
; g& h$ Q2 [' {: \start = TIMER_getCount(hTimer); /* get count */1 s" h9 m _7 N$ J/ p5 b
2 H; W* f5 f, ?8 n) x) q; j
/* Call a function here. */3 P: y+ O5 E. p3 j: s7 N! ~8 _- P
: k; N8 Z% M; l# t7 n
/* get count */* d% {: n. X2 j9 J$ q
diff = (TIMER_getCount(hTimer) – start) ? overhead;
$ k! }! |+ D3 YTIMER_close(hTimer);
- p5 W; @9 N% X J; ^5 aprintf(”%d cycles \n”, diff*4);. A, F# j3 q* P6 b
8 V; d9 j4 E3 T# L* w6 Q; @% S! ]8 O' N( ]1 ]
注意,C6713上定时器的一个计数值对应4个时钟周期。 overhead表示Timer本身配置过程的时钟消耗,所以有diff计算, diff = (TIMER_getCount(hTimer) – start) ? overhead;
% k0 D* p* B* p7 B. c! y- p
) H' ~9 W4 g, `3 v5 N1 F ~ |