|
|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
, W$ H; K: t( g% a# |
% R ^. y u4 g/ a环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
( n2 u5 E# D* _+ V, H$ F) j! I自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
& t$ O% O; A, Q1 d- M- J9 u" L应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?
3 u4 ?- f t9 Q# N" V( ?; k3 g% @# e
# ~5 a1 h+ a2 \2 b% D. h2 X
4 a9 Q$ A2 E+ J1 x- s' O, e下面是统计结果
& h: s" ~' C( r5 l7 I( I' n. Y统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
% U) @$ e3 z! s& M& o9 o6 zemucycle0_0 = EMUCNT0;
. }1 Y) t. ^+ |$ y9 |emucycle1_0 = EMUCNT1;
* j3 V/ T: c M% k- @emucycle0_1 = EMUCNT0;
5 G! |# v7 g: ~. t: R Vemucycle1_1 = EMUCNT1;
7 r! o9 w% T! `emuoverhead = (emucycle0_1 - emucycle0_0);0 C; @3 x( F) x* P& V
k8 O) |" H0 ~
算法();) }% R8 W/ L/ z6 w3 b) l
* K, [& r* }" a+ I) uemucycle0_1 = EMUCNT0;
& ?8 n! x7 I: q, Pemucycle1_1 = EMUCNT1; ~9 _. K( Z" G; x9 |# Q
& } y5 N, K8 W6 I4 mCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;0 e* E/ ?8 {5 z% q" ]7 Z
H8 X7 T/ o K
E& o7 i r4 K3 `) X- I
统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
! v9 ? h. C. Y DSP> cycles: 196468 : 11814000. D- ^* H* B p5 Y+ ]5 m
DSP> times: 430.85 us with CPU 456.
5 i, y" H, J/ V3 @7 b9 Q a DSP> cycles: 3238292 : 11814000
: o8 u) W7 `; i2 J8 c DSP> times: 7101.52 us with CPU 456.
( ]5 k2 f" d9 m4 d+ K) Y DSP> cycles: 157860 : 11814000
) w' L4 ]8 s0 Z3 {( i DSP> times: 346.18 us with CPU 456.9 Q! b k8 [! z. v \: I. K( N
DSP> cycles: 3265684 : 11814000. a; x: H# d* T4 ]
DSP> times: 7161.59 us with CPU 456.- {3 r' O: m1 h4 b& A6 R
DSP> cycles: 156344 : 11814000
" ]* I9 o" T) n } DSP> times: 342.86 us with CPU 456.
* l* \* P6 C% k9 |& D( ] DSP> cycles: 3304428 : 118140002 k6 S$ c d* l* y5 b5 V; {
DSP> times: 7246.55 us with CPU 456.& ~: A/ ^1 f6 X8 W% |
7 f6 a5 z, e2 ^) Y& d3 ?设置:相应的表放到IRAM中了
' H2 j f8 O& g3 O. c5 d7 c: MSECTIONS
' l; `4 k5 U' {& w{3 H$ {" C0 p3 T* W
.edma_data>IRAM align = 0x80
- j! }; P+ Z+ ]% G% z+ ~ .audio_glb> IRAM align = 0x80
9 B5 x6 [3 s3 J8 D1 X .f_table> IRAM, align = 0x80
# I, ^( y+ H) @0 y! R .f_text> DSP_PROG, align = 0x80
$ _. l4 |* y4 @, z( r .f_glb> IRAM align = 0x80
7 W8 v- Q& t, ?+ t5 q' G .ref_glb > IRAM align = 0x80
# y3 e; c# X g9 r}
0 M v6 c: u' G8 y7 k% W, g( A
' Z9 M# \! Y' z# H' G; E( |) G/ v1 a4 l2 L ~0 [6 C
编译加了-O3 优化参数
- e+ @) T& W# X7 C+ K- J; R
2 p. ~# g3 q4 e0 d( D' C& E# S7 L% l" ]* B- s3 n( h4 s( Z
6 c# k! K1 B% _ q5 |/ a/ e+ s+ Z( H3 a
& u+ a2 H5 K$ w" x( ]( |9 b5 C5 ?
9 |; Y- e4 c- k& a8 D$ y# T! Y
|
|