|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
) w/ _& ?3 _! X" c8 m" o$ [7 f g9 Y4 G5 R! R
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)6 d6 V2 w8 w* H& d) U! F' F1 Y
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的) ?7 I& ~! W W
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?$ K# E: ~+ U$ x4 O: O
5 m) x' X. U* K0 v$ a# ~* B: x3 o- ?* y% R# ?
下面是统计结果
, O3 b0 v* ~! G% D2 _, B( `5 ~统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 0 A6 q( g) j0 D2 N5 e; D( M6 k
emucycle0_0 = EMUCNT0;
! R2 E- m# u3 ^ vemucycle1_0 = EMUCNT1;" J8 h* t' A$ Y
emucycle0_1 = EMUCNT0;
2 N& }: |2 U4 h4 i' W6 y: Gemucycle1_1 = EMUCNT1;
4 ^/ v, m. X9 a4 Bemuoverhead = (emucycle0_1 - emucycle0_0);
/ s$ M" F J" n6 F$ s' w: E" [
7 w- ]. u Z7 F& ]8 x/ w算法();2 [! b: t& b1 M$ m/ x
( E8 @: O, r K; R' h$ {5 }' ]emucycle0_1 = EMUCNT0;6 q* M7 {0 X: Q
emucycle1_1 = EMUCNT1;7 w$ n3 U5 v: A4 }
3 Y' P9 p, n4 O$ v( qCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
( d- H# L5 q: X1 E" L
: _( p, ^8 V( l) F6 o; N! C1 k# a/ h. u+ Z) z" |
统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍 Z* c @' [4 u/ b/ W$ g
DSP> cycles: 196468 : 11814000 O, k6 P. j& @; b) j, J: p( T
DSP> times: 430.85 us with CPU 456.4 p5 U- I6 u* m) E# E0 U' Z+ Q
DSP> cycles: 3238292 : 11814000
1 g. g& S0 ~" A; |* M DSP> times: 7101.52 us with CPU 456.
5 c$ m& P2 U9 a7 c* o% w- f DSP> cycles: 157860 : 118140009 M( E+ {6 r% r/ U: c6 \
DSP> times: 346.18 us with CPU 456.
; q, J6 ~! j E* [* d/ Q* m DSP> cycles: 3265684 : 11814000
! u/ R0 m/ Y9 Y( ]5 d Q DSP> times: 7161.59 us with CPU 456.* A# A* Q% O* L+ f& n: d
DSP> cycles: 156344 : 11814000, \3 {! F! M7 k2 R3 W( t% j0 X c6 s
DSP> times: 342.86 us with CPU 456.4 T) k; t: K' p8 F* P2 W& J, S- H4 v/ T
DSP> cycles: 3304428 : 11814000
; `+ O" L3 ]7 ], E7 a0 |& k DSP> times: 7246.55 us with CPU 456.) Q8 _% M' _4 _" t
) b6 I! } j$ n) F. g* j I
设置:相应的表放到IRAM中了
+ N x2 P5 R2 ^5 [, u! @SECTIONS, j* A U' ~+ _0 ]$ t9 A I
{( x/ u$ Y/ c/ |( [4 ^
.edma_data>IRAM align = 0x80
# r! @1 F4 M4 Z# r9 y .audio_glb> IRAM align = 0x802 ]! [6 _/ q, T5 Y# w# i# c
.f_table> IRAM, align = 0x80
2 ^6 o7 v; D; e% ~2 V( h9 E .f_text> DSP_PROG, align = 0x80
L$ }$ k8 e a/ k g* r .f_glb> IRAM align = 0x801 A: E; M/ w% J
.ref_glb > IRAM align = 0x806 d9 |5 w6 L; ^
}
5 G! b L* S+ ~, B0 o% B1 R. b5 i) L: ]
6 a" A6 @$ r8 L9 D/ q$ G- g$ d% c编译加了-O3 优化参数
* {3 W B+ O( t' Y# D% _
# e/ U' m% u/ P& W5 m' s
+ T B- B% L5 |2 L' Y3 W/ d* E
1 f ]' H- _' h Y! ^
# E' ^, B/ f& @9 \9 T) ^) J8 @( T2 r
V, f& p# g+ {
0 X/ R8 m2 Z0 e, T# S L |
|