|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
$ H2 m' o; a ~2 |6 i7 _, Y( g2 k& L; S4 J
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)5 r( X0 H E" l0 t" g9 O- E, Z. Q
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
9 L, J: A- C# V. p+ b应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?, r0 w' B E' t6 h% U) I V
; I" \& ~$ Q. m
; Q" l" L% h9 L; C: i. w6 \下面是统计结果
3 t& m9 [' u4 r& z* I统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
6 I! n1 C1 Z5 d, T+ Uemucycle0_0 = EMUCNT0;5 H2 V! V) T( M6 z \# H- y* E5 y
emucycle1_0 = EMUCNT1;. d. a! F' E+ R% q* \- E9 n
emucycle0_1 = EMUCNT0;
" @7 c) l/ Y& S1 L0 u8 I/ eemucycle1_1 = EMUCNT1;
; \. Q' T/ m% [ ~; o! L3 wemuoverhead = (emucycle0_1 - emucycle0_0);
; J4 I5 M$ o- T9 W3 k, Z
. x9 [9 i* P% z" ~6 U, i算法();$ _& [9 s$ y0 A( K C6 v
! r5 A# F4 P* |9 Temucycle0_1 = EMUCNT0;( @4 T; j9 a1 T0 \+ b9 u/ R/ Z0 ?( S
emucycle1_1 = EMUCNT1;
$ Y5 R& S' M7 L3 @3 M8 [0 ]4 k/ ^' T$ f8 ]( u0 r! g9 b
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;5 }9 X/ |8 q3 R! p* n
: D7 M/ }( M8 q/ S+ i
! X) y( j& b4 K- h7 D0 [
统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
( w u: h; ]4 ~8 |% S DSP> cycles: 196468 : 11814000. [2 C% m% v% ^2 c. F
DSP> times: 430.85 us with CPU 456.$ E. F$ T9 c7 U6 o" K7 `
DSP> cycles: 3238292 : 11814000
- {4 e5 r6 }( [# T# M$ A4 [ DSP> times: 7101.52 us with CPU 456.6 \$ l5 z% @( z1 s- a
DSP> cycles: 157860 : 11814000
) V& U# g" }7 \* @ DSP> times: 346.18 us with CPU 456., P( M1 |% B+ t1 P4 w! E7 H
DSP> cycles: 3265684 : 11814000$ n& f& _+ y0 F
DSP> times: 7161.59 us with CPU 456.9 ] s; k. I4 L2 @
DSP> cycles: 156344 : 11814000
& x( }3 m% k% w' p DSP> times: 342.86 us with CPU 456.( ^! k4 p+ \4 w9 m
DSP> cycles: 3304428 : 11814000
! g# ]# N8 q( P8 v9 { DSP> times: 7246.55 us with CPU 456.- R% @+ B/ d1 K. Q
: O) ~! U; r" g4 c; F6 s, _+ ]
设置:相应的表放到IRAM中了- V0 `0 a! ?0 S! Q1 V
SECTIONS/ F" B# ^; z( R
{
2 E# R1 Y' b+ \3 R! _9 w .edma_data>IRAM align = 0x803 T' H! R! z4 \* t0 a% _7 K
.audio_glb> IRAM align = 0x803 \& W" a+ f, }
.f_table> IRAM, align = 0x80 . [' k& o, |" B6 x- H
.f_text> DSP_PROG, align = 0x80
, h: s% v- h1 y! s4 O; {5 t6 A6 O .f_glb> IRAM align = 0x80' v0 x9 d% X$ }5 N [" V( B9 F0 g
.ref_glb > IRAM align = 0x803 z6 t |: t* f9 q% {; R
}
* Q, |; l( ^7 n& x7 G3 `7 {; S: {. L3 l. O
; o6 y9 V: i9 o) x/ H编译加了-O3 优化参数. U f8 z g& i3 @; V
" d9 ^1 M; _6 M: p' e- Y- T- @' ]: F; b( E: p+ v6 w" T" r
+ }0 _; [: ~: Q( K# m9 }
7 A9 |6 b5 I& Q# B/ S0 e# W: I* |* w- P) z& j N
# M6 w/ m: a, m" Q+ ?( ^ |
|