|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
. A& f0 M; k, s' H5 D# ]( Z' y9 x3 ~3 |! K( V1 Q! X
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)2 u+ G: F8 n" r& g5 @" U
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的- Z$ T" \+ n6 P5 C* l* l
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?1 Y( z% E% U/ D% n' x1 m2 M5 |
, G" S8 `, m; K2 s$ }4 o" H
8 a+ ~5 R4 Z" ?0 ]/ t下面是统计结果" p2 U) s. T7 K; I
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 4 G T% J7 V2 J- I4 K; M
emucycle0_0 = EMUCNT0;1 I2 Y2 l7 V3 s) M" h
emucycle1_0 = EMUCNT1;
+ @$ @" _$ m; G* `, Temucycle0_1 = EMUCNT0;6 q; F! s" o: j
emucycle1_1 = EMUCNT1;
5 h# ^2 ^# m& y8 cemuoverhead = (emucycle0_1 - emucycle0_0);6 f. Q& C5 m3 L
; n+ }0 q6 N7 a" d, W
算法();1 V! ]; w1 V- F3 G0 F1 G6 j0 P
" [- g! `: h2 O- q7 `1 A. V, @
emucycle0_1 = EMUCNT0;
G& A! q/ o2 k( d" semucycle1_1 = EMUCNT1;' B$ q" ~# u9 ~: V0 M
Y. O4 [: H" y0 K$ Y
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;) C) j+ i& w( b3 j9 R) k8 X) V+ C
& }' i3 S- s9 v( u5 i7 C2 i0 H* m
# L3 ~% z# _6 l# v统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍; W7 V, o2 e5 G3 M$ E1 N
DSP> cycles: 196468 : 11814000
5 o7 T% |0 M+ U; {6 v, ^2 O4 V DSP> times: 430.85 us with CPU 456.
; H' X0 |7 x0 h, ]% x1 N DSP> cycles: 3238292 : 11814000+ c+ I7 V' e1 n
DSP> times: 7101.52 us with CPU 456.
6 ?' H; F; f6 z, j$ K DSP> cycles: 157860 : 118140003 U1 V5 ?7 c- @" e& e( G
DSP> times: 346.18 us with CPU 456.
6 E3 d f2 [. B: C! p& f DSP> cycles: 3265684 : 11814000
. f5 e5 |- t: s V: [) l% o: o0 H DSP> times: 7161.59 us with CPU 456.8 q& B$ O9 Q3 l) t- ?
DSP> cycles: 156344 : 11814000
9 K0 ~% h0 i" y) h/ I' n DSP> times: 342.86 us with CPU 456.
5 X+ ]! E+ B! A4 K" g! V& ?; N# x DSP> cycles: 3304428 : 11814000
! t% a( ^$ f+ R3 O0 S$ x DSP> times: 7246.55 us with CPU 456.
. J0 U0 m4 G5 x* g+ @' P$ C
* W' |8 H: N( v( J+ N设置:相应的表放到IRAM中了& l6 [0 \& @2 V3 D$ G$ ]7 K
SECTIONS
$ q& X) h& S" n% N, C3 {{
/ w& C' u+ ]# Z0 b) [ .edma_data>IRAM align = 0x804 w& t8 I' G; B; a6 e' ^
.audio_glb> IRAM align = 0x80- J6 d3 m% I5 l
.f_table> IRAM, align = 0x80 . B; Z5 L9 r: t$ N: h, _
.f_text> DSP_PROG, align = 0x80
7 m" p' ^: C+ U* X8 R" b* Q .f_glb> IRAM align = 0x80, s) s; W: z' A; B& T$ @
.ref_glb > IRAM align = 0x80
7 g' g! i- I1 R) P4 g' v}
/ C8 M+ w2 r9 }# |. E; m- V' j6 t: J1 n& V
% r) W+ V9 ?, y2 g7 Q
编译加了-O3 优化参数
7 z' D/ u6 U# J/ X+ U! U
& J2 f- C( O4 B0 w1 \( a0 }: C% [
; W4 e0 f7 H6 ?. ]* I: i
) V. m! o7 _" Q Y) s! C1 r% |+ Q
/ j6 O7 q9 v! ]) _$ y5 |- G" {' T8 b' E) Y" I$ ~
1 v" z- B: R1 N2 ^/ d) B |
|