|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
2 I' l; k5 w9 h1 H( A/ G$ V* C, u9 ~+ A; V9 y
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)2 f5 j& |8 C5 R& Y- [) m" {* N
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
& k% J7 O m# J0 |+ m# i应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?' N, y& E# N' L, n' w
" F* F& a# G- B5 J7 k0 l4 d8 S- }& y; {7 M
- Q6 W1 ^* b# o/ a4 V* r
下面是统计结果
' o) F+ V3 H4 s& A$ d+ T/ u统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 ' C# x0 L& T( U: t
emucycle0_0 = EMUCNT0;
: W* n- R9 E1 nemucycle1_0 = EMUCNT1;3 X2 W! v2 k! J+ P \5 ?) B+ R
emucycle0_1 = EMUCNT0;; Z, m d5 T: }+ H" m+ ^
emucycle1_1 = EMUCNT1;
% J( S9 \7 c- Y8 n* F, [1 m8 Eemuoverhead = (emucycle0_1 - emucycle0_0);& p2 L( g$ d( [$ }" P! H
' K) g! a0 {$ b2 j" t) Q0 j
算法();
s+ V i0 c4 A. N2 x$ I& h% t4 d% W3 e# a; z
emucycle0_1 = EMUCNT0;
! r% r+ p9 s; p; `emucycle1_1 = EMUCNT1;1 o6 _. Y/ s0 I# S- B O# D9 _
1 m1 b* I: d- r. w9 a; lCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
% n2 v+ Y+ [* q3 J% Z& r- |- b8 ]4 d* h+ B% B6 ^8 `6 Y
" f* d3 M+ f4 ^" T; P
统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍" v+ Q5 x8 R/ I7 o3 k; b
DSP> cycles: 196468 : 11814000
/ B0 l2 z# w+ Z7 n7 Y DSP> times: 430.85 us with CPU 456.- N/ _2 ^+ Z7 I! j
DSP> cycles: 3238292 : 118140006 r* B1 {; E, D8 Z1 H: }4 G9 P
DSP> times: 7101.52 us with CPU 456.( s2 h2 t b6 i4 e5 z6 J
DSP> cycles: 157860 : 11814000
0 x# H2 j# K% Q2 m! Y DSP> times: 346.18 us with CPU 456.8 G; J0 ^: U' g4 ~0 ~
DSP> cycles: 3265684 : 11814000
5 H, a& T) Y5 x DSP> times: 7161.59 us with CPU 456.
4 L& W! J8 ]/ t0 r1 g/ s DSP> cycles: 156344 : 11814000) J/ R' L: }2 Y+ S
DSP> times: 342.86 us with CPU 456.9 f. A* M( z% j( U* k7 J0 |! `
DSP> cycles: 3304428 : 11814000
9 }9 w& Q8 T6 V: K+ b: h DSP> times: 7246.55 us with CPU 456.% q* S. p% {- t8 @' J
) z( V/ Y( c# s) f, {/ ~" l
设置:相应的表放到IRAM中了
/ X4 g/ f2 R$ y$ q+ |3 J) NSECTIONS
; K5 y1 U3 T% F# n! x W: b/ V{
5 P1 E( N+ {5 Y .edma_data>IRAM align = 0x80
9 s9 _1 T# B2 y C6 U/ ^ .audio_glb> IRAM align = 0x80
4 J0 F$ Z& f: F& V: y .f_table> IRAM, align = 0x80
. c' r9 r& x6 _2 ? .f_text> DSP_PROG, align = 0x80 ; w4 l* s4 h1 U2 G2 u; i
.f_glb> IRAM align = 0x80
. X4 i+ x4 J9 e7 u& ~4 G! F2 t .ref_glb > IRAM align = 0x80! N- ]( v& @" B2 w8 {# k* {3 f P3 @
}
2 i. g4 N, U$ x: o4 X
% I8 H+ a% D+ Y6 {- s7 R% L5 E0 k5 _/ R8 O* r5 A) f- k& h
编译加了-O3 优化参数
1 w2 i: ?6 f2 a* ]5 u) V6 W6 x5 o, ^; x
$ `. F8 @* Y5 O6 g
/ J( _1 N: D" U, S
4 J# j. s; q$ f. r3 |% h
$ m1 P3 C/ h0 |
/ L, }" p" c7 }3 e |
|