|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
9 ]$ Q/ C1 e3 w, Z, \6 }: M. F
3 V3 V) d# a0 H( w: g环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)& f# q) E) t3 x9 l$ Y9 ~ i* u
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的0 H) r. F; C: [8 d+ P
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?
3 I# }3 D0 A" Y x
7 x$ n2 C# R2 ^; l2 `8 @. ]* {4 Q D# C& `5 M: |, T
下面是统计结果
8 C: O! K6 Q& k" T统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 & T8 r4 ~* K2 E1 @# ~; P. k+ y
emucycle0_0 = EMUCNT0;# k3 ~( P5 n% @/ z/ i$ _. f' i
emucycle1_0 = EMUCNT1;
$ ]/ l7 c Y: v) ]$ K' cemucycle0_1 = EMUCNT0;) o- D* A8 K* n6 Q
emucycle1_1 = EMUCNT1;
6 a! l3 ?; v3 I2 r% _emuoverhead = (emucycle0_1 - emucycle0_0);* i" O$ n" y1 t$ x
; N3 S4 x$ a! q1 e1 F) S. `# j# U9 n算法();
( c/ i6 T8 T" M Y$ h$ a
. @/ }7 e6 @& N; {; s7 z5 }emucycle0_1 = EMUCNT0;5 R( P' X0 |$ h& X8 I n1 M) ?2 B
emucycle1_1 = EMUCNT1;5 P0 A6 j* n6 f1 ^/ D _6 ?. \% m
+ g' ]1 |2 A5 U7 s/ VCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
0 z" k* u( q7 s$ s: m8 i7 ^
% @$ A3 B: T/ U c+ b5 X( x+ v
: D1 ^' c2 X9 x, u' k统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍! r$ P2 O% ~& d$ N1 H" }: g, j
DSP> cycles: 196468 : 11814000
$ f) Z9 a/ _7 P+ r5 M6 N DSP> times: 430.85 us with CPU 456.
% n. a* w8 Y2 l& K* ^ C DSP> cycles: 3238292 : 118140008 ?1 z5 y. d% d$ t+ k
DSP> times: 7101.52 us with CPU 456.
0 D% K9 C# G8 f/ [ DSP> cycles: 157860 : 11814000+ N/ w2 d/ K# B. h
DSP> times: 346.18 us with CPU 456./ X/ X: q/ M: S: W+ m
DSP> cycles: 3265684 : 11814000
( P, {2 X- M6 C7 w. k0 o/ t DSP> times: 7161.59 us with CPU 456.
! `- a: i) c6 `' |( N3 I- ? DSP> cycles: 156344 : 11814000
7 Y3 h! Y6 ~" w0 Q3 y DSP> times: 342.86 us with CPU 456.
5 s+ l& @( k8 z5 [- T& S _ DSP> cycles: 3304428 : 118140001 c4 A5 G2 A+ x0 M1 p0 B# g
DSP> times: 7246.55 us with CPU 456.
1 a1 Y2 W& S! \( W2 i: {) a! J3 k
设置:相应的表放到IRAM中了
* W. t6 t7 j3 n6 v3 ?SECTIONS
$ a5 i: `) R5 R( M! J8 W2 g- v/ X8 H{
6 [. w6 E2 f- \: f% b8 u .edma_data>IRAM align = 0x80
+ ~( x% g6 _* ?' B .audio_glb> IRAM align = 0x80( w; t, o* q' Y) S$ _
.f_table> IRAM, align = 0x80 2 L* D5 j5 i' C% O L, y
.f_text> DSP_PROG, align = 0x80 w7 V6 U4 b2 C0 \0 J# T
.f_glb> IRAM align = 0x805 N( Z2 C& x4 U7 t$ c( E3 P! ^
.ref_glb > IRAM align = 0x80# h Z) r9 L! w7 d y
}
: x) S5 M2 w$ F/ i* U
" p" ]9 {" B( h8 {# ]7 A6 X& ]; Z' u5 a
编译加了-O3 优化参数( H1 x M* r- M; B8 W
0 I* c1 J% h/ {# v" v. K0 h
2 Y5 j' x8 R9 W7 Z
1 i2 G$ L4 z, I! D
$ [1 A9 Z' `- q$ W i2 K- p, c
1 L7 o! H- M Y. ]1 l1 o4 w6 Y1 Z. p1 Y- @3 h% r# s9 U
|
|