|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 ) s! W) C! J9 e% K, o
$ W0 u- S2 C! `& h+ M/ z# ~# I环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
) ], E r7 K! P* Y# ]3 }自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的0 v& I9 G& Q9 f' z4 ^* y/ [) \
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?1 @: j6 ~: d( t7 x/ w
0 E* o) s4 j! ~) U& P7 W2 N
7 B+ t% }% F& h3 ]9 d
下面是统计结果
0 A% a% v$ c( w# n统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
# G( }" j: v& x# yemucycle0_0 = EMUCNT0;% v- |# U$ `# P$ n, j2 v$ V+ @
emucycle1_0 = EMUCNT1;
& ~5 l4 N& n+ h. n2 v# r# ?( {+ [emucycle0_1 = EMUCNT0;- o! N; a; {! t- ]7 o- @( Q6 \
emucycle1_1 = EMUCNT1;
! i9 _+ W w" H1 }* ~* `0 Zemuoverhead = (emucycle0_1 - emucycle0_0);
0 q& P# F' m: k/ j5 i1 N
J& b0 I% m, E7 g y }/ E) {算法();
8 e7 R0 ~9 B r2 n# z( O& L' \ e1 L: ^ p# x9 P
emucycle0_1 = EMUCNT0;7 O2 J6 f5 M P! L2 @, h
emucycle1_1 = EMUCNT1;
" V- |8 k/ l/ o9 \/ S/ M6 T& A5 O
* W3 u8 G6 p" P6 u* G8 P; j5 a# HCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;$ h1 m$ J' D/ F3 F4 J
9 X- ]" ]/ T: f9 f2 `
5 Q Z) C: t$ N2 w4 g统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
" p3 ]. `) [$ F- M* ? B DSP> cycles: 196468 : 11814000# p! J' t" P, d& _6 E1 |& E2 A0 d
DSP> times: 430.85 us with CPU 456.( {% D l) a( ^( M' V/ ?* z# j$ }
DSP> cycles: 3238292 : 11814000+ z( F8 w, h% R/ t% ~
DSP> times: 7101.52 us with CPU 456.
! m# d1 g( r3 v* n. }8 d, D5 i; q DSP> cycles: 157860 : 118140000 _9 U$ R3 O- D9 m( d, r
DSP> times: 346.18 us with CPU 456.
& I6 I0 Q7 i+ s DSP> cycles: 3265684 : 118140008 D7 ?, u* ?3 k9 k" ]
DSP> times: 7161.59 us with CPU 456.
+ ?& d3 Y0 c* R* I5 } DSP> cycles: 156344 : 11814000) T$ i, ^* } l
DSP> times: 342.86 us with CPU 456.! o4 h. S; v& N% m
DSP> cycles: 3304428 : 11814000- K1 G; J) _# J6 n" H/ J0 T
DSP> times: 7246.55 us with CPU 456.6 _) |3 `& o" d; g; W
/ C, d, }4 l5 N; e; q* I9 Z
设置:相应的表放到IRAM中了
2 M; M; }9 I3 Y; ASECTIONS: p+ a$ A1 v$ N1 N' ^- a- t- A+ ^
{0 N' d2 ^( k# |) D
.edma_data>IRAM align = 0x80* j8 A+ g+ S+ v' c1 V* L1 n
.audio_glb> IRAM align = 0x80( G5 |5 [) ^* [' O+ h! p) `/ Y
.f_table> IRAM, align = 0x80
) ^/ A- I' x1 O& [5 h; q( w .f_text> DSP_PROG, align = 0x80 ) p% z/ E0 @/ w
.f_glb> IRAM align = 0x80: _ I q6 @* F
.ref_glb > IRAM align = 0x80 Q+ A5 q. H+ e' w
}
3 l8 F- Z3 t$ e8 v% L
: R5 U' F4 C% y3 J3 K4 f: P) ^, K
8 d: [! v+ x9 t! O. p) g. ]编译加了-O3 优化参数
/ N" x( O/ l) b5 q7 h, T" ~
2 q% ~: V$ W1 Z) D2 u
$ p* `! M5 l& F( Z
; ^- b. g3 O" {' F5 u U) c
. k2 w$ e h- M5 y% p, ]
: v& {/ d9 b8 e
" g, i Q7 W& {* u; V |
|