|
|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 1 J+ m. Q4 p2 i6 b# v
0 u4 N' |$ T# F8 n) G3 ]( `
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
+ `1 [, K- W% M自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
0 C x# S* O, ~" L应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?
- x& K, M; D* w/ K4 k3 U: a2 Y% X) K( u t7 e# l( C: B
- ^% o( q5 s/ \' V
下面是统计结果
1 m" z, ~) m2 m( w& \" E统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 4 B4 X! v# x8 d/ P# ~2 @
emucycle0_0 = EMUCNT0;
W- i+ T/ i2 q+ c9 s) |emucycle1_0 = EMUCNT1;9 K3 C/ t1 C* @& b6 y
emucycle0_1 = EMUCNT0;: k% q$ Y# m% r
emucycle1_1 = EMUCNT1; : `+ w& M% K5 P: _" R
emuoverhead = (emucycle0_1 - emucycle0_0);" m0 e* X1 c* f! w4 B
; ^6 |0 I; m$ l6 p) Q0 G6 D8 \: z算法();
/ z8 H8 i- R' S+ r! ^+ t9 _+ F/ W( d9 O6 h0 Y0 y8 E! b
emucycle0_1 = EMUCNT0;
G5 _% B' L& c( j5 l- Q8 `emucycle1_1 = EMUCNT1;9 ]1 e6 I7 [) j) t; z3 I# A
) ]5 }6 Y% y0 U
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;% j! @7 T3 Y5 G& i$ V
6 y/ F7 X" `! [8 c0 ?$ k
2 `& _, i4 j. S# g统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍, L* b) F0 E {9 g+ _5 @6 x
DSP> cycles: 196468 : 118140006 [" h3 ?9 @: w+ m& O
DSP> times: 430.85 us with CPU 456.8 t! l9 m0 B4 I2 f7 ]
DSP> cycles: 3238292 : 118140009 `4 L9 x2 }' m! ?0 y# O- n1 R
DSP> times: 7101.52 us with CPU 456.: W3 \3 [. N! z
DSP> cycles: 157860 : 11814000
5 f1 O5 n, J% ?+ f DSP> times: 346.18 us with CPU 456.
$ w- e: V4 y+ g2 j DSP> cycles: 3265684 : 118140006 V, e' J5 W+ A3 U6 L/ d
DSP> times: 7161.59 us with CPU 456.
; O$ }9 O8 S8 h: E) N2 E9 y DSP> cycles: 156344 : 118140005 Z) ~- ^* M% G7 X/ A8 G
DSP> times: 342.86 us with CPU 456.6 B, N2 u5 N& B1 }) D! H4 F7 M
DSP> cycles: 3304428 : 11814000
6 ^! g6 R! {) h) r9 M DSP> times: 7246.55 us with CPU 456.
: l+ L k! X: d1 k0 [
: {! d) s2 m6 G4 g3 }设置:相应的表放到IRAM中了
/ a2 }: _6 g; D; ^SECTIONS
" z2 c+ S8 U( t U7 F8 f& ]# Q{
6 R \3 Y1 o4 X: r# Z .edma_data>IRAM align = 0x80
2 ]! d6 |% N ?0 `" A .audio_glb> IRAM align = 0x80
2 w2 I% o: d& \# c0 j! d .f_table> IRAM, align = 0x80
- [; g- i3 R6 p1 k7 h/ u .f_text> DSP_PROG, align = 0x80 ( {' C. o0 W/ V/ |+ b) P
.f_glb> IRAM align = 0x80
$ A4 ]# d& L! }$ V/ k .ref_glb > IRAM align = 0x80/ `- W! |2 E3 b! h9 V/ s
}+ C- P* O2 t% H. l* r
% d0 t. I2 V3 G
# R- M; _/ Y! }4 q) {3 }
编译加了-O3 优化参数# s( F* G$ ?' C, z
1 n) f! p8 p' c$ }5 p
1 O' D/ d$ p( w7 B8 [1 T8 d& H! B2 t, a
( t( K. H0 g' W" `
8 e: k) w, _* Y- H$ m' @! |' F
+ w5 w! u8 x/ q3 k9 B; Z |
|