|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 ) f8 x, P2 O* w! N) h! v
: p9 f' \% n4 }环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
$ ?( |7 u6 N% _ t0 `/ e自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的 Q. P2 ?% J5 U& V4 D5 N
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?) Y# H! S/ x/ r8 U% V1 ?
! z( {; q# K& k: N* @
8 A8 M( }' I9 f2 K$ Y: _( S下面是统计结果& O# m R1 {! ^- Y, ^
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 6 M, W, v. ?9 O( t) u; {
emucycle0_0 = EMUCNT0;% e5 A$ i. f) t5 G+ v2 n& j
emucycle1_0 = EMUCNT1;0 }) y; l# o5 y& |% Z3 g0 r
emucycle0_1 = EMUCNT0;' ^# U; s% [7 D) z2 ]5 p
emucycle1_1 = EMUCNT1;
; D7 G, W# k ]$ femuoverhead = (emucycle0_1 - emucycle0_0);
' W" u/ o" P! K" Q# r9 X) I4 }9 H9 w) G; O7 J& `
算法();! N5 ]7 o! v$ t. R0 D
3 O; ]0 ]# _ z! C6 d+ r
emucycle0_1 = EMUCNT0;
+ I3 F- c/ W: s' m' vemucycle1_1 = EMUCNT1;" h1 J+ X9 h# }/ T1 l
( S/ m7 J* i9 J2 T8 lCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;% @% H, q! y; d4 k, O( b7 A
( \. |- P U. h$ s. d; _
" B) l& p: X, l7 V" D7 U1 i; G统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍9 \' Q& o l' b2 D6 o" a# i
DSP> cycles: 196468 : 11814000
{; ^5 o% X, }4 E4 V) W/ G& d$ h5 ^8 ? DSP> times: 430.85 us with CPU 456.6 D1 W i/ ^/ k5 } J
DSP> cycles: 3238292 : 11814000
\/ h, C" I } DSP> times: 7101.52 us with CPU 456.
i. ~2 ]5 D S! E& f! I DSP> cycles: 157860 : 11814000
4 i8 ]+ h# J |2 h/ q; j* q DSP> times: 346.18 us with CPU 456.4 E8 X6 U/ T4 k& b8 o( q
DSP> cycles: 3265684 : 11814000( X" I+ L y. r& j- `/ X7 k
DSP> times: 7161.59 us with CPU 456.- O; A7 H E% h* [* W l8 ~
DSP> cycles: 156344 : 11814000
0 |+ h8 p7 W1 @" Y$ o0 y0 d. D# @- @6 j DSP> times: 342.86 us with CPU 456." d: Z1 u4 r5 i3 \
DSP> cycles: 3304428 : 11814000: t5 K3 n" f$ Z+ L; r- y: r
DSP> times: 7246.55 us with CPU 456.
" W! F! O- F/ i! Y2 H
, K |- j0 M0 e4 d8 _* w设置:相应的表放到IRAM中了- l5 Q; o. m/ j) g+ s! U& i* ?6 a# V
SECTIONS# F" |7 R5 d+ |: V2 r0 G
{
: J0 I0 t# T2 D& G .edma_data>IRAM align = 0x801 i- h. T, S. b, K" u
.audio_glb> IRAM align = 0x80
/ c% D* _4 L" c( G) T/ |) x .f_table> IRAM, align = 0x80
/ m4 ]' l9 z) y& [ .f_text> DSP_PROG, align = 0x80 # m' g, a# p) X9 Z, u: R; }
.f_glb> IRAM align = 0x80, a3 E. f+ H: H" t" `
.ref_glb > IRAM align = 0x80
# l4 g& ^1 ^: P: ~) s* ~% q9 h}
+ a5 E- g% Z+ M0 C0 h; ?) G' m j& c
x8 l8 G0 {; V
编译加了-O3 优化参数) v$ k9 W7 h5 f, {
0 J$ z+ k4 B3 f2 u0 i; G% d
% k4 B6 S1 c% X( z* r$ E
1 n/ ]! q* {; C. c6 |# ], i4 d" Q% S: W( F9 N, i
, `' s! ~2 L1 z: G! e/ X/ @
$ r6 B. @0 N9 [7 ]) U |
|