|
|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 # N( o! w- V9 P7 L
" u! y' j. K/ i6 Y# j环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
8 i8 P2 z* e( R2 B. w1 a I, D- y自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的3 M) k/ k6 f/ j
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?5 J* @8 }8 o* u6 n0 k
+ k+ @# D9 U: }. x6 i& t- l$ `; C
下面是统计结果& m& |5 U. [; ^+ j
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 ) ~1 _2 e( C: }, k
emucycle0_0 = EMUCNT0;; v% p0 Q& H2 P8 t0 S
emucycle1_0 = EMUCNT1;
, {! B; \, P; }" |8 J6 d. e. M3 F. @- eemucycle0_1 = EMUCNT0;/ F2 u+ y3 g$ V* }( H
emucycle1_1 = EMUCNT1;
# L8 W8 @1 N1 T" Aemuoverhead = (emucycle0_1 - emucycle0_0);, o/ [: P! f; x- x: [6 h3 |1 j0 ~
& l# u4 S+ U: c, p4 D算法();
" l4 U- y( Y2 N! L, F: x/ ]4 h. I/ h% p$ S& W1 [
emucycle0_1 = EMUCNT0;
3 ~( m2 {/ @3 ~ I( Zemucycle1_1 = EMUCNT1;
. p" z8 G+ u1 w7 v$ e- S2 n. }6 O2 Q9 O$ A* c; E
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
0 |3 `% O' J( r. J& D( K. H( C" S, a/ e
' J! V3 Y. v" ?- t& C2 x# X( ]统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
: d9 o0 R6 ^: I8 E+ Q/ Y DSP> cycles: 196468 : 11814000
' p! N& `' ]- L- W DSP> times: 430.85 us with CPU 456.
- V& U& @( m. \; B. @. T. Z5 ~ DSP> cycles: 3238292 : 11814000$ o/ n5 P: i0 q$ d
DSP> times: 7101.52 us with CPU 456.
! m; ?1 U- [% c0 [ DSP> cycles: 157860 : 118140002 N' I7 L0 W( d+ \% R# a Q
DSP> times: 346.18 us with CPU 456.0 z V+ \, P( y1 H3 j
DSP> cycles: 3265684 : 11814000
( J, \ m# x* {1 ?$ S' W# N DSP> times: 7161.59 us with CPU 456.
1 ^& y( z$ z8 _* T( B p1 r/ X DSP> cycles: 156344 : 118140002 i: t7 {0 F/ [ i2 M( h
DSP> times: 342.86 us with CPU 456.
4 Z! J% J7 G1 [1 y4 s5 N DSP> cycles: 3304428 : 11814000 w i" }9 u' ]% {& s$ ~
DSP> times: 7246.55 us with CPU 456.
! K, A! f4 A5 h* [
% P3 v$ G' q1 y3 T5 V' T/ k- o设置:相应的表放到IRAM中了
% f" _& c1 [; T6 ?5 iSECTIONS
' r+ S4 ^% f; R$ u{
6 X5 U6 c/ K4 z3 V .edma_data>IRAM align = 0x80
- T2 I- I+ R" ~/ O! L1 C- _ .audio_glb> IRAM align = 0x80
* N7 q3 b" h; ?& i9 Y" S _5 u .f_table> IRAM, align = 0x80
) J+ ~- X# {8 u4 r- J .f_text> DSP_PROG, align = 0x80
5 r; L) n3 t( |8 s .f_glb> IRAM align = 0x808 k9 U4 M% t! Z% ] D
.ref_glb > IRAM align = 0x80
% i. _- \5 \+ A4 Z+ y2 b# S}
9 g0 u* d; S" ^" p
! V+ E0 t8 P( U+ f
. t. ~ m Y4 r2 e* y编译加了-O3 优化参数
1 n: e( ^$ p. s5 Z% g4 r1 v# P4 l5 S ^! u* \( J0 p
6 I8 |2 `' i2 ~2 i1 v
8 b4 N, s, {. t* r) T# g- K* ~
1 T* a5 t4 G- h; x8 s6 Z! Y9 \( B, h2 v& V
7 _+ \& J8 c/ _ A( @$ a |
|