|
|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 9 t$ T1 v) D( t" Y s7 A5 |
) f/ K% Z f8 D' |. L7 s' p环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
7 d% B, R' n) s" P4 F自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
" S! h, V9 T1 _7 U应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?
$ N5 c; @, H T2 u% H# f: I' f: e# i* q8 s3 x O
# g5 @: j, d3 L' o0 D
下面是统计结果
$ H/ }9 `( l' Q统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
. s( ^8 N, [% i0 b" {) ~8 z3 \emucycle0_0 = EMUCNT0;
! k- [4 `9 r% B3 t* nemucycle1_0 = EMUCNT1;9 n1 f% _" w. I* N( S) y$ \
emucycle0_1 = EMUCNT0;
1 u2 ^, w3 d( U5 v4 Semucycle1_1 = EMUCNT1; 8 n- Q0 H C% d" a. w) g9 W
emuoverhead = (emucycle0_1 - emucycle0_0);
/ O$ i, G- \6 ]/ k" W# ]1 ?( n, l' ?2 w( Q# h
算法();5 J& t3 ? \/ v7 ~. M9 @
0 E: Y' B3 v4 ~. s% [# y }emucycle0_1 = EMUCNT0;5 B1 ?# v$ q* u: h- B0 ^* f$ P
emucycle1_1 = EMUCNT1;
' Y# ]+ A7 `0 \4 S; d' j0 R
- O. b1 f) F4 y2 I9 w' OCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
. U) ^5 T8 B+ I f; z; H0 v6 c$ h3 q, s" D) r: f
+ l) C; P; Q- Y4 Y统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍; V8 A% Q: r# x0 C: O) H
DSP> cycles: 196468 : 118140002 x2 F* D9 h) C4 A7 r
DSP> times: 430.85 us with CPU 456.
* \3 l" j- t0 r+ Q7 H DSP> cycles: 3238292 : 11814000& V& `+ R. ~5 a7 ~ ^4 M6 l
DSP> times: 7101.52 us with CPU 456.
% u7 o& Y9 o! W# Y i. _ DSP> cycles: 157860 : 11814000. T0 C- U9 h) R& X( z; U: a3 j9 w% L
DSP> times: 346.18 us with CPU 456.
# {3 q I# f$ R" M DSP> cycles: 3265684 : 118140009 I9 k( Y* f: p7 Z( A2 v# O! ^& r
DSP> times: 7161.59 us with CPU 456. H6 z* {! P& H
DSP> cycles: 156344 : 11814000
5 Q! o f2 \+ X: k6 D% c DSP> times: 342.86 us with CPU 456.
' z8 y& V3 E' z# R+ ]( ^" f: f DSP> cycles: 3304428 : 11814000; n+ I( J% `8 h' z
DSP> times: 7246.55 us with CPU 456. [0 J, ~1 o5 ^3 [( u6 a9 I8 F; q4 Y4 {
8 x( r/ C5 R9 t设置:相应的表放到IRAM中了
1 s: h1 `4 D8 E1 k8 \SECTIONS
; s) m- Y& u! ^5 j% O( t% Y{- d( f1 k( i# ^( i3 r6 i# G% n- h1 i
.edma_data>IRAM align = 0x802 F; ]4 U1 p" u: {
.audio_glb> IRAM align = 0x805 [1 r- d1 Y ~5 n) y8 m
.f_table> IRAM, align = 0x80
" V2 b5 ?4 f# e8 g; I" N .f_text> DSP_PROG, align = 0x80 ' z7 {+ T' a8 ^4 r
.f_glb> IRAM align = 0x80
" d5 ]* p; Z. p/ L5 r6 B .ref_glb > IRAM align = 0x80& x* |9 q A) t7 H- B
}. D' T3 `- l6 F% V9 i3 V
8 d$ @* _/ G: F# `" [" R% Q) _$ s, N6 U: E* o0 [5 P; i
编译加了-O3 优化参数
2 p, J- e$ M: O p, `6 a$ r, B3 A% ~( |7 I0 _& n9 P( Y3 L
" C, a2 U2 y+ o' t5 B
. z% M) b$ P7 B! N1 H
; z+ `4 [7 D. I" B
" J$ i1 \. Y. J9 a5 y: v& l
$ u7 N6 ^+ g5 |& I1 V. m" d |
|