|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 ! Z7 E3 G S8 f* S7 A0 {. ^' R
. V' N+ U; g4 T- v& ]
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)% O8 I2 ~6 W5 F5 |5 x8 y& D# U
自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的+ R$ A# D7 u+ O, j
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?2 K1 a; x( ?* H8 S- }
7 @) ?8 e1 j# ~8 g; ]+ u9 Y4 |
+ ], z) }$ x% Y/ d {下面是统计结果
/ K" \( P0 [; u9 }8 W统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
. M3 T5 C% F( c a9 D" Aemucycle0_0 = EMUCNT0;
* l+ C. q! d, e% F/ p' _0 r% yemucycle1_0 = EMUCNT1;2 _+ S) Y: {5 f/ L% m9 b
emucycle0_1 = EMUCNT0;: m# P$ p' K6 u/ X
emucycle1_1 = EMUCNT1; ; ~4 Z6 R0 k. f
emuoverhead = (emucycle0_1 - emucycle0_0);
& ?3 C: L u( M9 S: K+ t
" ^3 b4 M) k( {' m2 o$ n算法();
* f$ N7 n) t/ u' y; f& o: F7 o
& T9 C$ o+ I5 \' z$ r6 Zemucycle0_1 = EMUCNT0;
6 V5 {: u) I/ r* Hemucycle1_1 = EMUCNT1;
3 X- B ?% T- ~5 d+ D2 R; O' i9 S6 w- m
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
5 I" I& H9 x. r" V/ W+ w M: [) V: C9 Q" f1 v. b1 G0 w# P
3 M$ t0 O `; ?% {* Y i统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍% r& l! ]1 X! j) v6 O# P( B& m3 s
DSP> cycles: 196468 : 11814000
7 s, y N) v2 ^4 p S- ?* B DSP> times: 430.85 us with CPU 456.
9 |6 j2 c4 O G- u2 ?) X DSP> cycles: 3238292 : 11814000+ G6 J: S# v4 W+ t8 f1 F
DSP> times: 7101.52 us with CPU 456.
1 Y; ^) t) J8 x5 a$ ? DSP> cycles: 157860 : 11814000& v/ F! ?+ `. q6 ]
DSP> times: 346.18 us with CPU 456.
, f5 Z! b$ W. L DSP> cycles: 3265684 : 11814000/ W( a2 y$ g, x' r0 z
DSP> times: 7161.59 us with CPU 456.
8 Z" L/ W4 O. y) y( w; i DSP> cycles: 156344 : 11814000
5 m! h7 s% ^% T8 O' h DSP> times: 342.86 us with CPU 456.
/ A" }" r( h8 f* v! Y+ c DSP> cycles: 3304428 : 11814000
& b! |9 y; H I( n& d Z( t2 G DSP> times: 7246.55 us with CPU 456.
* p/ [# Q2 Z6 h' ~, f; D. l [9 d4 T
设置:相应的表放到IRAM中了8 n0 U+ H! b- X J
SECTIONS- E: G7 `" Z8 W6 V/ N( W9 `
{
% a8 A/ e4 B. @ .edma_data>IRAM align = 0x80* i* W: Z" h7 o6 W
.audio_glb> IRAM align = 0x80/ c1 T+ b& t& S8 a* w" i- B
.f_table> IRAM, align = 0x80
$ x6 o3 N* _. w! s .f_text> DSP_PROG, align = 0x80 1 S; a" i* w5 C7 `2 v; N$ q
.f_glb> IRAM align = 0x804 F/ ?% m. p5 \9 g
.ref_glb > IRAM align = 0x80
) e* w7 [0 ]1 f}- V6 x. t/ c9 y! b% [6 s5 `
7 b% x& B" h# Q7 v3 P& ], E/ o: x, o& J* H% g" {" ^/ u: D% L
编译加了-O3 优化参数* s3 g* G! ?( U8 p0 F6 {
$ ~0 M' n3 ]4 q5 |3 X7 k; W) v$ ^
3 C: s$ K( {2 Z; @# \ o0 S; h% U" z* ~+ i% K
2 J' S6 s# H B
: D7 p4 S& D( B
$ r! m& ? `* A, _1 T |
|