|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
. E) y! T9 ?4 y* T) J7 K! H! j7 \* }8 p
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
9 t) j* X! F, \自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的! h. }; E2 B+ w6 h7 w! H- H
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?
5 |. p7 |. }% }7 a' B' S" `' i* Z l- q! I1 Q" e% d1 _
2 T% S3 Z) w# R- [8 e下面是统计结果. }& q* x; `' v
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 ) W8 h5 w: Z4 L: M6 o' V6 D
emucycle0_0 = EMUCNT0;+ A' b, ~ P8 R$ L# H
emucycle1_0 = EMUCNT1;4 w2 E) X9 c/ x
emucycle0_1 = EMUCNT0;
* M' k) R; b0 _7 y! \% femucycle1_1 = EMUCNT1;
7 J, S" z- Z# L cemuoverhead = (emucycle0_1 - emucycle0_0);% X. Q2 ?2 e* Z7 f( r t, d8 }
0 S5 r. U2 `4 F/ U6 a
算法();2 ^5 ]8 Z5 H' ~& j, y, ?
! g- ~3 {2 } m- Q0 n& I4 \emucycle0_1 = EMUCNT0;2 Q( G! a0 K3 I$ s" q% ^/ x: u, o
emucycle1_1 = EMUCNT1;
2 q5 y& f) Z, c. l& M, h( i
: r( H& C7 @. MCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;- c0 B- q! p9 n. k0 t9 t
0 J ^' x' }7 T( P* z( Z6 ]
$ D: X+ X) x- M M统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
- R$ Q; }1 B: ]- P0 b( I4 h' L DSP> cycles: 196468 : 11814000
; ~! v1 K4 x! y DSP> times: 430.85 us with CPU 456.4 ]% m4 |: \. G
DSP> cycles: 3238292 : 11814000 X2 H4 J4 d* }. A8 v" ^
DSP> times: 7101.52 us with CPU 456.
5 i% G4 A7 t, ~ _7 g, h+ g% O DSP> cycles: 157860 : 11814000: I6 H' J1 e- I: G1 d
DSP> times: 346.18 us with CPU 456.. t9 B f1 A! o7 m% {9 ^
DSP> cycles: 3265684 : 11814000
) ^5 ~4 z+ P* @+ Y DSP> times: 7161.59 us with CPU 456.) q9 \' L& G% m' O8 c: W
DSP> cycles: 156344 : 11814000; K J8 |# \" W( ]" {0 c0 w# v
DSP> times: 342.86 us with CPU 456.) D, U/ f. a) n* r5 o
DSP> cycles: 3304428 : 11814000
3 c I( x b+ T9 q DSP> times: 7246.55 us with CPU 456.
: F3 i3 T, `9 m" Z# B3 p" O8 S- V0 u7 U" v6 ?
设置:相应的表放到IRAM中了
+ q D- [. `& d. v5 aSECTIONS
w; \7 v9 K; S2 n4 _{; Y. C4 k3 \- d- s! C& h
.edma_data>IRAM align = 0x80
- v" e" g" c3 T( H0 y# X0 k8 S .audio_glb> IRAM align = 0x80+ u5 w/ B4 i: p& {' A; B
.f_table> IRAM, align = 0x80
w9 m+ k1 M3 w .f_text> DSP_PROG, align = 0x80 " }5 K1 C( x) l7 a) t: p) n) o+ U0 H
.f_glb> IRAM align = 0x805 B% x2 P* f+ D7 g* R# I4 @
.ref_glb > IRAM align = 0x80 o# m& b4 Y! T& C
}
" L3 u8 V' C1 P+ Y" ]4 u
7 J2 L, F+ S9 c* ]; p" _2 @0 C$ C+ W3 I, j+ z5 y
编译加了-O3 优化参数$ H8 b8 c/ |6 ?9 `3 c/ P9 G
, ?: w7 b: T- T7 W+ @
3 ]% P4 f L! W8 z+ C2 S' z7 U4 o/ [- a" ~8 v+ s
; }& U. ^# C: X9 r# e
7 y: n- I0 @# J, N! x- R+ r$ N: M; f% F+ F, Z
|
|