|
|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 1 [8 J& f$ Y6 ~% y! ]
; K: L$ ^6 A3 }1 X. B4 X环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
& l" f# `( Z6 e- q7 i自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
( L7 O+ G. _3 L7 u z) s( Q& I应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?! S! X# D8 T7 z9 Q( h7 A' t, D# g5 a
& W% o2 ?" {6 y5 x0 `& ~) _2 G
6 |$ H; o: ^1 l# [/ i/ W# i下面是统计结果
; S" W9 n0 i2 k3 Q( Q统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
M2 D: x( M9 C* B" {emucycle0_0 = EMUCNT0;
3 |2 n/ U/ r& A8 T d) V, Pemucycle1_0 = EMUCNT1;! @7 o) A1 }; [
emucycle0_1 = EMUCNT0;- I# z; k& i2 i, x
emucycle1_1 = EMUCNT1;
( ]- E* i+ E) X' F$ hemuoverhead = (emucycle0_1 - emucycle0_0);
" }0 a J* Q* H) W- Z9 ]/ l1 J. k5 T1 C- N/ o* S
算法();
) r' D* V* j) |* a+ m0 h
6 ]7 b$ a0 @3 t6 i* t6 Z# \! C- a; \emucycle0_1 = EMUCNT0;
+ A* y* f* g5 t; Oemucycle1_1 = EMUCNT1;. I: C4 o1 _- V' W' w# m
5 k* q' f3 [/ c8 Y% r, Z3 G; mCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
( \* v: y6 q4 c5 i7 |! Q3 [6 |! K$ x% n$ r1 y
. e. s/ t! G7 X9 O. \! _统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
! \4 i% c7 ^/ z: C/ W( r DSP> cycles: 196468 : 11814000
# t0 r2 h: O B% ] DSP> times: 430.85 us with CPU 456.
: W$ S$ t9 \. v0 ` DSP> cycles: 3238292 : 11814000 G4 X |0 h t6 R$ m( g) _! R6 v
DSP> times: 7101.52 us with CPU 456.5 _9 R) b F* _( y: ~5 Y7 p
DSP> cycles: 157860 : 11814000
$ R+ b/ |' G5 U DSP> times: 346.18 us with CPU 456.3 q ^! P4 K- A6 ^ X
DSP> cycles: 3265684 : 11814000
. z! Y$ r: }* v5 T. ~2 [1 X1 C DSP> times: 7161.59 us with CPU 456.
* l+ }* n5 q& \ s" ^- a DSP> cycles: 156344 : 118140001 Z5 d$ ~: `+ t3 n* q3 b5 a, O
DSP> times: 342.86 us with CPU 456.; E4 B* g4 Z( Y# S
DSP> cycles: 3304428 : 11814000
3 k8 l) z6 z! Z' X DSP> times: 7246.55 us with CPU 456.& n1 a+ b% i( N
7 d6 l8 i2 M" B* I( u# t8 n' W, V
设置:相应的表放到IRAM中了7 [( E+ h3 J8 Q* b
SECTIONS4 W* n' z1 J, l: C
{/ X; p/ m0 h: m- f+ W; ~
.edma_data>IRAM align = 0x801 m: D' \% M/ I: d& H0 m8 w. h
.audio_glb> IRAM align = 0x80" l4 D+ Q$ ^: n/ X) g
.f_table> IRAM, align = 0x80
' c; ~0 r$ s/ o .f_text> DSP_PROG, align = 0x80 8 @; H) T+ n8 n; c! F+ D# ?9 Z
.f_glb> IRAM align = 0x80
6 b+ X! q. |" X8 S .ref_glb > IRAM align = 0x80$ e. H. e. O; r6 ]5 r
}
" ~9 l2 ~1 O% ?) n9 o' P; Z: ?+ ?5 ]! Z/ z6 l8 g
. a* A" P) C" c% t) J编译加了-O3 优化参数- h( ^8 [0 r) G
7 o8 r0 `& C) h% q6 @7 ?$ g1 @* k+ w8 C: T
6 y+ X$ }) s$ [# f6 N
3 j3 G* |9 D9 ?
8 Q2 g: g5 i O6 C- _( d% {3 y6 m$ Y K f, C& X7 |$ E! m
|
|