EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在DSP671x上使用Timer统计信号处理算法的时间消耗! a& c; W8 N' [ k
代码实例3 g$ M( l9 T- n% x% ?1 U1 l
& Z. v# W" Q) A+ m) a2 M. w: KhTimer = TIMER_open(TIMER_DEVANY,0); /* open a timer */7 d5 I4 w. Z1 P& x+ u
9 Z: v/ I! d7 V. X# q/* Configure the timer. 1 count corresponds to 4 CPU cycles in C67 */
4 g/ ^' o7 j# ]) {3 u" f' K X/* control period initial value */: j9 o. \- C" T) y4 G
TIMER_configArgs(hTimer, 0x000002C0, 0xFFFFFFFF, 0x00000000);0 ~1 W* z# v0 S) H/ d9 X2 K
' N) ^1 ?2 C" _4 D3 d
/* Compute the overhead of calling the timer. */: ~5 v* \" p+ I9 ]: j
start = TIMER_getCount(hTimer); /* to remove L1P miss overhead */6 r! e: O0 B! h" m
start = TIMER_getCount(hTimer); /* get count */# p6 a% J8 Q& z: B; s. u# a
stop = TIMER_getCount(hTimer); /* get count */
7 b, r5 H" W7 U0 K- M
* q+ M/ h( c% |0 `overhead = stop - start;
$ l) I2 T6 ~7 v @6 Jstart = TIMER_getCount(hTimer); /* get count */
) N9 j, \4 L6 {4 J% [8 J/ z5 L7 ^6 l1 m& z
/* Call a function here. */. y1 k P3 k9 Q3 p+ b
% h+ ^, d1 V+ a/* get count */
, |# M. |' e, G9 {+ F2 U# [diff = (TIMER_getCount(hTimer) – start) ? overhead; 5 |8 r) E" k4 r, K7 M$ x
TIMER_close(hTimer);1 A% u5 E6 @1 f8 E0 q2 H& i
printf(”%d cycles \n”, diff*4);. g% _1 T2 ]- k; t: s2 \! j! W ?
% Q# d9 f8 @% L. a5 h
" t' l. g9 k1 T$ X- T& [, o" G! N
注意,C6713上定时器的一个计数值对应4个时钟周期。 overhead表示Timer本身配置过程的时钟消耗,所以有diff计算, diff = (TIMER_getCount(hTimer) – start) ? overhead;
0 G& |+ d5 ~. j( N( ~; ?
7 O1 Y' o- d0 K+ |( H# @3 t |