EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在DSP671x上使用Timer统计信号处理算法的时间消耗) d) n. B- o/ \6 K& p1 X; v, u2 X
代码实例+ j/ g6 `3 K3 x4 ~" @: P$ }6 T) `3 w
) X3 @" _/ K- ]; ?/ o: \hTimer = TIMER_open(TIMER_DEVANY,0); /* open a timer */
4 t6 j- P |1 ^" w: F; ?3 j6 J( U, B! S; N6 p9 g h
/* Configure the timer. 1 count corresponds to 4 CPU cycles in C67 */
. d: g$ v; w& Y, e( [! K/* control period initial value */+ ^5 w2 w+ M' z# {2 x- F
TIMER_configArgs(hTimer, 0x000002C0, 0xFFFFFFFF, 0x00000000);
; k# R5 T3 v" G" L, Q7 s( U3 n! w0 M! q5 {; X
/* Compute the overhead of calling the timer. */
% V V: T& A7 ~; J, z$ C$ Q; t1 ]start = TIMER_getCount(hTimer); /* to remove L1P miss overhead */
y1 F& Y/ o& Y! H) r( [start = TIMER_getCount(hTimer); /* get count */ `9 D! _8 w+ A( @3 i8 I
stop = TIMER_getCount(hTimer); /* get count */
}& T5 O: H; m" G1 `$ u# X9 w" E$ a0 o5 j6 T: l0 w& v
overhead = stop - start;
% p3 B6 n# \/ {start = TIMER_getCount(hTimer); /* get count */" P; O: F% n( m' L. }. x2 {0 u* W
1 M0 c; i! M4 X5 Q1 M- U4 E* m: n
/* Call a function here. */
2 i8 T- V$ n# R7 s* u! {1 W% S' D9 [5 d* A! K( h5 l& q
/* get count */
- H: g+ s2 J+ K) T0 {% n! p! N7 Idiff = (TIMER_getCount(hTimer) – start) ? overhead;
9 y5 I& K3 p" vTIMER_close(hTimer);5 q! t3 Y! @+ A# g
printf(”%d cycles \n”, diff*4);
2 J& E% h1 Q! i$ Q3 v. z3 r- [5 }6 h
% |% u6 d& M1 g) T1 o! g
注意,C6713上定时器的一个计数值对应4个时钟周期。 overhead表示Timer本身配置过程的时钟消耗,所以有diff计算, diff = (TIMER_getCount(hTimer) – start) ? overhead;' ~, r& p! Z8 X
% p) |* t# d. ]9 l: `
|