|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
2 O! s+ e" z3 G# J7 H
& ]- @# l$ N3 v% [环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)" N7 z1 T M7 l% Y
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的) l+ _# R4 ^& I( ^8 V* ^, h
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?- u8 m1 d7 v* J" _7 A: c0 l9 @$ g q* u
u7 K5 \3 O6 Z
5 t& d' k/ | }下面是统计结果" g% z G! ?5 W8 D: g: G& E
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 8 [0 b" W6 i& w; N2 H
emucycle0_0 = EMUCNT0;. E `5 Z$ E' C
emucycle1_0 = EMUCNT1;7 C9 i8 V5 F6 G4 y
emucycle0_1 = EMUCNT0;2 H- ]4 X0 _) m7 \
emucycle1_1 = EMUCNT1;
. o( T9 @4 f2 A- I3 demuoverhead = (emucycle0_1 - emucycle0_0);5 |# O' ~! ]3 l) g
9 H6 J" v1 a( N5 z% [算法();! a! t/ i% c5 \7 g2 J* G6 D3 S& \% X
5 F- W: I# r" Z8 J4 ?
emucycle0_1 = EMUCNT0;9 f( B/ X9 n6 i" K# v
emucycle1_1 = EMUCNT1;4 c. x6 H! U" c. B
& j& {3 _. ]& m- r% F4 F9 E- ]
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
7 {# z" Z7 @; j8 I6 b& B5 n" u+ P, r5 S# L( m8 K+ i
|1 @- s. U) B7 r0 m统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
4 ^6 B6 N" [- |; l DSP> cycles: 196468 : 118140009 u) b' K! P7 a& s% i% Z4 O
DSP> times: 430.85 us with CPU 456.
, A% E$ Y! W8 z1 | DSP> cycles: 3238292 : 11814000: l7 U0 h6 t% J9 o
DSP> times: 7101.52 us with CPU 456.
3 l' |- A- }. ?+ X- v% E, x# K% d DSP> cycles: 157860 : 11814000
. [ d" r* H. p1 j! q4 k DSP> times: 346.18 us with CPU 456.6 G; s; _; [- c
DSP> cycles: 3265684 : 11814000% P- s9 A& ^& h& [7 U6 w- w! ]$ n
DSP> times: 7161.59 us with CPU 456.
: D! C B/ |! q, [4 p& B8 ] DSP> cycles: 156344 : 11814000* S; D; i& Z( r1 r p3 v
DSP> times: 342.86 us with CPU 456.
/ Q; ^. H7 |6 g4 I& U DSP> cycles: 3304428 : 11814000& H9 F4 ~$ ]5 W9 G5 [( I6 i2 K
DSP> times: 7246.55 us with CPU 456.
% z I4 B+ X$ P4 a# j
3 Z( j2 r/ g$ p3 ?- h& _设置:相应的表放到IRAM中了5 s; T* p' ]* p
SECTIONS' p3 f5 z+ [' Z% \( J/ W& V
{4 I8 _3 W5 K; z6 j
.edma_data>IRAM align = 0x80
$ R; B- j( T! o2 t .audio_glb> IRAM align = 0x80: b( b* c& f6 J
.f_table> IRAM, align = 0x80
* z y1 h+ |/ R$ O @- t .f_text> DSP_PROG, align = 0x80
" K/ s1 b& S: g8 w* T* s3 u. m! A! a' s .f_glb> IRAM align = 0x80; u* J* H. I) o& t }2 z" z
.ref_glb > IRAM align = 0x805 S/ Q7 o; T& {/ B; a( ^+ P, z
}
# L+ w$ @5 j. b2 q4 Y! @ P' N3 _2 C: c
' e- Z# _4 I( Q" d& \6 O# h
编译加了-O3 优化参数1 \: s5 K' U j
$ Y" I) o: H4 T8 g$ ], ]
% A# }0 x7 B% d- X
0 `4 B4 m7 d9 y, O9 B
, _8 L4 P2 |. ~; k+ h+ t0 T" [1 S0 H8 K
: m! T8 P# F" G |
|