|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 / H& u- m+ H, C+ Z
. i) L# Q4 }) B! a
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
: v+ I) y* n1 O. b; }$ J( Q; j* F自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的; v: m& y- L; I, }8 _6 m; N
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因? h" Z2 }" J h. D' K4 N
9 @% Q: r' Z7 P, `5 C
/ R' H( m3 n7 W6 G9 k3 m下面是统计结果& h6 }2 y# f8 U* z4 L* N# v
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 % @) ?) Y# w+ Q8 f5 f$ t$ U
emucycle0_0 = EMUCNT0;- r% }+ `- T5 {0 T) t5 E
emucycle1_0 = EMUCNT1;9 M% v3 F9 k% X9 B* B
emucycle0_1 = EMUCNT0;
7 b( B' K. O5 v; x5 j5 Remucycle1_1 = EMUCNT1;
* j5 I: t" D7 T6 J1 D9 X+ C' oemuoverhead = (emucycle0_1 - emucycle0_0);
7 L& C. j) S4 Z( H
9 J- k1 ^8 S( F0 f& B3 T' x算法();6 {% i' T' _# }
, O# L# b. ]* Eemucycle0_1 = EMUCNT0;3 u4 q: W+ j, L( q
emucycle1_1 = EMUCNT1;8 h: J. [; R2 k# O' I1 `) A
$ i7 b2 H' Z7 r
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;- m& }% v$ t5 |$ H: n8 V; ^" Z& v
: F2 U) Q2 K1 ]* L& ]2 B3 \; ^2 O
m) O9 O+ }( d5 ?( [5 \% H统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍0 L/ f5 X: C+ Q5 B
DSP> cycles: 196468 : 11814000, e5 H9 M" _0 ~0 k. R5 i
DSP> times: 430.85 us with CPU 456.% r6 c5 N, x; m0 ?7 Z$ s
DSP> cycles: 3238292 : 11814000
* C1 N: d+ Y! C DSP> times: 7101.52 us with CPU 456.! i/ `% M% O8 @" I6 A
DSP> cycles: 157860 : 11814000
9 ]* b+ F5 h7 x- d* N( m DSP> times: 346.18 us with CPU 456.
6 l4 w( ?: \9 j/ I! w DSP> cycles: 3265684 : 11814000# |% Q8 m: w, a# v: A/ Q+ g/ Q
DSP> times: 7161.59 us with CPU 456.# C _" ]& v9 {: P! J4 g. ]
DSP> cycles: 156344 : 118140006 O4 a- M' C. s' f& Q% L
DSP> times: 342.86 us with CPU 456.
7 f- D$ Z7 C% v7 f8 V; ] DSP> cycles: 3304428 : 11814000% w, T& m, Y. e3 w1 \
DSP> times: 7246.55 us with CPU 456.2 K/ j6 T+ O" E% {: S6 d
) f3 Y- c( ?: p: n' n( J$ D
设置:相应的表放到IRAM中了& w3 e$ ^4 Z! S& p% L* w
SECTIONS) V5 U4 D$ R1 F% k. n; ~
{
, \& c0 V8 l) K .edma_data>IRAM align = 0x80
* ]0 b' `* z( z9 U4 r) T .audio_glb> IRAM align = 0x80
r5 K" G) S% Q! o9 ]5 z .f_table> IRAM, align = 0x80 1 l* t8 J; {- Y, C+ `# Q4 U
.f_text> DSP_PROG, align = 0x80 % D! o {! _& N5 M2 i9 ]0 |) O
.f_glb> IRAM align = 0x808 P5 L3 v8 C3 \
.ref_glb > IRAM align = 0x80. x4 f& W5 n( U$ @/ D4 E
}+ i5 ]* r9 k; d3 y4 e4 C
. A1 B7 K7 t+ [4 n5 G: l4 F
: W4 r0 A0 x; M. s1 f' Z& B9 ?7 b编译加了-O3 优化参数2 V2 `# ~. L, B1 L0 @8 s, w# _
" G) [* e9 ?3 M# g& t& G1 F/ }
0 s# I' H' M2 I9 z& L
5 B' A: t4 J+ W
: K- s6 J+ {. q. O
3 ~5 s" }: s8 `5 [& A
$ t5 O+ f$ J8 h" q: |9 N9 g |
|