|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
# v4 _% W/ t7 J8 T
% V1 m8 U2 ~2 q. v$ i环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
$ q5 m) N9 V. w) G2 O n, o1 n自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的- F' @: N$ j) x( p' n; q
应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?* w- ^- a. x8 l- j0 {+ m& B
# L; F4 N6 R( Q- | U7 _+ f
# x: H/ c* v' _$ @7 f' {. o下面是统计结果% k; |4 Z) g5 M, N: x) T, e" i
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
# O# d3 _3 Y! Y* ?emucycle0_0 = EMUCNT0;+ N4 u2 D5 _3 @; F8 j4 G. v" _
emucycle1_0 = EMUCNT1;
8 m4 a! m* M- f- I5 R% @, p8 aemucycle0_1 = EMUCNT0;
1 N6 d2 j) p7 c' x) P' b* G$ @% uemucycle1_1 = EMUCNT1; 4 d+ ]4 ^5 a8 t" M
emuoverhead = (emucycle0_1 - emucycle0_0);
6 O' G e5 ?& P7 u; z% `
6 B1 |7 J; I9 N- C% _+ Y+ [算法();1 L0 H' s. a/ f. T
# X, _8 A, R7 ]5 ^emucycle0_1 = EMUCNT0;' u) |# Q' O6 L8 P+ c
emucycle1_1 = EMUCNT1;# a0 E' Z# o u) ]. @" b7 t4 E
8 U+ u; y V6 X8 c7 v: _
Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;8 z+ i/ E% E( r% I) d5 ?7 ^
8 O: a& k$ N- U$ j
" Q# W. P* t4 n, R3 {2 N" \2 B统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
; s! |% U0 l; c! A- B: K DSP> cycles: 196468 : 11814000
3 a/ y* \& }! r9 P) Q DSP> times: 430.85 us with CPU 456.
; r% n6 }' j1 K& W& o4 o" M DSP> cycles: 3238292 : 118140002 R& u9 C' U% w9 W* q
DSP> times: 7101.52 us with CPU 456.
. k& T7 s* e9 r9 F: y DSP> cycles: 157860 : 11814000/ X; \/ B& ~7 A' Z9 p
DSP> times: 346.18 us with CPU 456.
8 S4 E$ ], j5 j/ L1 D DSP> cycles: 3265684 : 118140004 Z& o8 l) k9 m: Y( B
DSP> times: 7161.59 us with CPU 456.: L/ S$ s( t1 I2 h" _! H: W+ y; I
DSP> cycles: 156344 : 11814000
! Y8 F, k6 ~7 G DSP> times: 342.86 us with CPU 456.
2 `, d$ q+ \5 d, o DSP> cycles: 3304428 : 11814000
* ~8 R' Q( G+ Z/ }9 C- p8 i7 S8 z+ K DSP> times: 7246.55 us with CPU 456.1 Y6 H+ _* X9 J, @/ s
a! R( d5 c4 N7 F7 M设置:相应的表放到IRAM中了
, x5 P7 a: q8 g- v; JSECTIONS: o% x; d" ?& Q W
{
9 l. g% Y$ [! e( [6 B2 l .edma_data>IRAM align = 0x805 ^2 \* H% B y7 S/ g5 E
.audio_glb> IRAM align = 0x80) S2 s* p3 F, L; O& R, s+ m
.f_table> IRAM, align = 0x80 - L6 o! l3 Z% h- g# U
.f_text> DSP_PROG, align = 0x80
) R& z9 h7 ?: e/ ^ .f_glb> IRAM align = 0x80& ~3 F( j: }& W
.ref_glb > IRAM align = 0x80
' t6 S& j& y5 n9 X7 }}$ _8 B; j, A2 \1 |4 T
- d7 o1 B/ v5 X. ?
. j% K+ v, ^8 o& i5 J& U1 q4 t
编译加了-O3 优化参数, k$ S" @; l. k4 `2 l+ Q3 v3 ~
# }! B' D' W0 T5 g$ ~- r; h
n" o4 Y) o/ x# o$ P
+ N4 T ]/ r* X3 v" i. @
( h* E/ u/ L9 H9 ]4 |% ^3 e. D0 ?2 F1 s- A4 p |6 v
* k' }3 Y( `2 P1 _4 s* l9 r
|
|