|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
4 }5 H7 F6 K+ P! A) Z2 t; @4 {; N
& [/ q9 {1 U2 X) `" R1 w' v- s环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink). {8 Y; E$ s! R) w1 \% W6 S( S
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
( {% o7 p( } r) T4 d1 r7 Q应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?1 c# ^7 K6 \, r6 Z8 A, q
0 B9 R8 R; ]( u0 x' f$ X
3 x+ l7 B4 ]$ l2 W: j4 K$ R/ i下面是统计结果: p) F, C L# p& H
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
8 F% k( Y( l' k' h8 W2 kemucycle0_0 = EMUCNT0;
$ M. V# \5 H* D9 n% A% o( eemucycle1_0 = EMUCNT1;
6 K2 v( a) `, ^) M2 b2 @) {emucycle0_1 = EMUCNT0;: x- Y- U7 X; e) S% ?4 v( ?
emucycle1_1 = EMUCNT1;
9 L! t" u8 j, Z) v' z. M x4 demuoverhead = (emucycle0_1 - emucycle0_0);8 L0 i3 B9 H! F
; T5 D7 M+ O a算法();
4 [5 q; J \! l9 [, j! F6 N9 b
" w( K3 u0 b( u6 Nemucycle0_1 = EMUCNT0; [8 E& T& g- W, i# S* N
emucycle1_1 = EMUCNT1;
& ?7 S7 C0 x1 o5 A8 k7 r! G& g0 z! ~$ Y
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;# n7 b7 ~: z' p" R
) M$ @1 ?: \ ~* @5 l/ w
8 c2 Z1 P; @$ N/ _5 q统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍7 J% }& M( o! X8 G
DSP> cycles: 196468 : 118140004 q1 i) e$ g# {* [" i# e
DSP> times: 430.85 us with CPU 456.# n6 N5 ~! `. w* I; q
DSP> cycles: 3238292 : 11814000
/ Z9 P8 L6 x3 x* {) T' a: i DSP> times: 7101.52 us with CPU 456.
. h! A9 K& ?; k: s/ n: i+ M6 I" R DSP> cycles: 157860 : 11814000
B2 _5 U o+ B0 ^, T) I8 q DSP> times: 346.18 us with CPU 456.8 l' s- k$ y# y; Q% d) C
DSP> cycles: 3265684 : 118140009 M$ H6 U* }' K' {! o' t
DSP> times: 7161.59 us with CPU 456., [7 C. T( e v% e+ a
DSP> cycles: 156344 : 11814000* ]: c$ x" Q9 K2 ^' j2 J% @
DSP> times: 342.86 us with CPU 456.1 ^7 t7 J7 O( t1 \
DSP> cycles: 3304428 : 11814000, v$ f; [/ W, z k" d
DSP> times: 7246.55 us with CPU 456.. u8 e8 V& n' M" m
8 J- r" J' [- [4 ~! h) ~% j' t设置:相应的表放到IRAM中了3 w b# C) O9 ?! o
SECTIONS$ v6 z" g8 j6 b# D2 ?! L
{
" [) P- ^* ?" }/ O- N5 y .edma_data>IRAM align = 0x805 c) J/ Q5 N4 o4 J- N1 A6 @% ?
.audio_glb> IRAM align = 0x80# k& \4 n2 r9 q4 g) M3 z# K
.f_table> IRAM, align = 0x80
3 X8 B m9 H0 Y% B/ b, R .f_text> DSP_PROG, align = 0x80
0 X3 I2 a# P' J1 a, `1 [" x .f_glb> IRAM align = 0x80
- `( [. D# O3 B# P2 o .ref_glb > IRAM align = 0x809 A" K6 \, y9 j! J, f" |
}# V. I X# I% T% }, K
( E# ~% W$ z+ I' u F, L
, I* `7 [) d% ]& g. o. N编译加了-O3 优化参数0 x) r% P. E/ A" ~
4 q+ w& V/ w. ~8 u! N, n
% \# M5 k( O2 v
|, I3 }& W& \8 M$ G2 \
% O- B' g9 J7 p l7 u) H8 [
! {# [5 t' l+ f" i
2 r3 c$ J$ @+ z: R7 Z
|
|