|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
$ {* }6 t' A' l" l3 @ q# c( X& l% T7 j4 k4 C, o% j/ i
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)# n9 Y! n8 H. V) v5 ~
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的4 ]: m( f% Y9 H1 G$ ~0 V0 I
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?
/ \6 n0 S/ C6 g6 C/ m: V- |
( [! P, O$ M+ a- {( h5 K" H$ Y2 ~
. j" |+ W- S& S ^1 e下面是统计结果
4 P( Q" t9 _9 x统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
z2 a% B/ R$ Iemucycle0_0 = EMUCNT0;
& q& ?. @$ K- l( Zemucycle1_0 = EMUCNT1;
6 M; S- R$ _- a0 d1 p4 s: ]/ eemucycle0_1 = EMUCNT0;- n* V$ @" r1 E; I- H) w
emucycle1_1 = EMUCNT1; % H0 t/ S6 T$ t( M: I6 o e# [/ B
emuoverhead = (emucycle0_1 - emucycle0_0);5 K' `$ C& Q. a, p, Y
2 O# \3 q9 p5 |6 J3 ~
算法();
/ k1 i4 j4 b/ O3 r! \
# ?% X$ }0 N. v8 p9 ]emucycle0_1 = EMUCNT0;! z' S0 l9 U4 F& r8 E: G
emucycle1_1 = EMUCNT1;
0 m7 s% r% w( C+ s4 N0 z# X2 z5 p+ D, u4 j( V% o% x- d
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;& w; P) p/ k7 m6 B
1 P6 d; G5 b1 \( w" U3 L; Q
8 u# l' u) A2 L( F9 E6 h7 u; Q5 H/ k1 L统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍7 w( Y" D S8 \4 T- I
DSP> cycles: 196468 : 11814000
- K7 {' @7 Q( V, [% v2 o DSP> times: 430.85 us with CPU 456.
4 h: ^* o5 s+ d1 }! e5 Q# q. u; `6 n8 I DSP> cycles: 3238292 : 11814000
$ Y! p L2 P$ H7 H: D& q DSP> times: 7101.52 us with CPU 456.
. u$ Q2 Y& R8 E' y- C DSP> cycles: 157860 : 11814000, z6 M, K! M3 r
DSP> times: 346.18 us with CPU 456.
$ y2 j# u8 ^ P3 ~, X DSP> cycles: 3265684 : 118140001 s' v2 p2 Z1 A! B5 f
DSP> times: 7161.59 us with CPU 456.
. w) a' G3 |, v4 N+ ^ DSP> cycles: 156344 : 118140003 Z5 w9 S. Y% y% Z* [7 z3 m7 }3 [
DSP> times: 342.86 us with CPU 456." {9 k0 w% b4 i* Z$ S
DSP> cycles: 3304428 : 11814000
4 u) u9 A6 v9 P/ q) w$ h+ N3 u6 [ DSP> times: 7246.55 us with CPU 456.( {0 h# A- n: h8 @
4 V1 y8 E& l; x/ |9 N; b( ]
设置:相应的表放到IRAM中了
5 Y: w6 d3 b) H% vSECTIONS: {" u2 h1 w8 A! ~
{
# x, d1 ]/ m& d& [- T \ .edma_data>IRAM align = 0x800 K, ?6 D3 p- J4 {
.audio_glb> IRAM align = 0x80
3 u. b' j# D8 q% u .f_table> IRAM, align = 0x80 ; v. E" }2 S: h
.f_text> DSP_PROG, align = 0x80 0 a; Z* B, [& y& S& x$ h
.f_glb> IRAM align = 0x80
8 c( X6 E- M a7 y9 h .ref_glb > IRAM align = 0x80 o B$ v5 i- N2 u/ ^3 Y! K
}
4 m6 n# I6 C! }2 |0 R+ L8 H+ d. g9 Z" b
[' f# a: N) F! B7 x/ x. l编译加了-O3 优化参数) j. {% X2 g! z- s# L
- q$ _4 ^5 n' ~2 {& q
; O6 e" |( M- v! Q. c+ \( ^# L( K: j' J' D4 t; X
% f3 K' j1 k, N4 F1 @
% y/ d5 y$ D6 y; i, U1 a" V
$ ^) I7 h8 N! o8 S6 W
|
|