|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
* |( v$ V/ u: ?) Y, K1 r2 X6 y- T) P
# o) ~- f6 [0 A. j9 I, x5 {环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
" [) L- `; S: W$ {. @自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
0 [% ]/ y: o8 X4 n+ U9 P% J- q应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?; S* }8 S& A" c6 @' q. F
8 d* u* E& ^0 {" S$ U/ `/ P: X+ Q7 n
& T, i" j/ G. _+ X) _3 V$ E
下面是统计结果5 `( Q) ?4 I+ A, f9 b+ C' W
统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
6 n: [# l0 g' N7 z( P( `emucycle0_0 = EMUCNT0;
& K$ e# s0 s% C) P/ Zemucycle1_0 = EMUCNT1;6 `) W- Z" Q y1 r5 q( R% b
emucycle0_1 = EMUCNT0;% b' R; S3 y; R- W) ~# r G3 _
emucycle1_1 = EMUCNT1; & Z( x# |+ [% B1 k# x4 e
emuoverhead = (emucycle0_1 - emucycle0_0);- x) K( M; _) g$ O5 i
8 j F/ Q- S1 h: s6 p
算法();
3 A+ a7 A0 U; D( Y2 J8 |1 j9 r V# G) ~" x! F/ G. ~
emucycle0_1 = EMUCNT0;% x8 C, w6 v/ S7 y) C
emucycle1_1 = EMUCNT1;. K% @. ^; T* G! X; f
7 i# A5 m4 ?4 }+ {4 R8 l0 xCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
1 t3 o8 G( ~, W" J
: I# b# n& d. l, T/ |3 o O4 }; J! r* f
统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍9 P% x2 ?% p* s* w& G. k
DSP> cycles: 196468 : 11814000
% T4 U# a# o' @; b$ ~ DSP> times: 430.85 us with CPU 456., @; V* C5 l% v) h/ `3 x. B
DSP> cycles: 3238292 : 11814000. q/ c1 s. J# O. S% Z# v
DSP> times: 7101.52 us with CPU 456.
- E0 U" V* N$ U2 J1 n/ A DSP> cycles: 157860 : 11814000
6 C& u$ c$ x. G& T DSP> times: 346.18 us with CPU 456.+ F! J# d0 ~) U+ o( n$ D
DSP> cycles: 3265684 : 11814000- A" ^. D& O9 r3 P5 F" t
DSP> times: 7161.59 us with CPU 456.0 `! I' t2 C6 U( [- [9 h
DSP> cycles: 156344 : 118140002 M3 |5 i/ _& G Q7 d
DSP> times: 342.86 us with CPU 456.
; |: Y7 e/ h8 Y9 ?4 H" v DSP> cycles: 3304428 : 11814000, X1 n C' J! d. k& v3 c% S
DSP> times: 7246.55 us with CPU 456.
/ y1 h% ?2 N8 m4 H! _# g; L3 ], L; L" i: x) }5 v. ~
设置:相应的表放到IRAM中了
# U2 r3 \2 T% b1 U3 |7 E' kSECTIONS0 s# _/ @3 ~, g
{
" s# c* \1 v. W" ~* j' G! S( z .edma_data>IRAM align = 0x80' a; G1 W, A7 y: `
.audio_glb> IRAM align = 0x80
) x, n- N( z" N .f_table> IRAM, align = 0x80 ! s9 V( N0 Z$ _+ D( N# @
.f_text> DSP_PROG, align = 0x80 # h3 j2 \1 [, Z7 v+ x
.f_glb> IRAM align = 0x80! X& t2 n; s ~' K3 k* q$ c
.ref_glb > IRAM align = 0x80
& j& E3 x* L* s6 \}4 Y& f' C9 W$ u) ~% q) Y
% ~+ q& N4 j4 @) B$ S+ \
# s3 n: L' G4 o% L- e2 I- t
编译加了-O3 优化参数
- T. ?$ W( N3 o2 H' A' {8 B* S) h
) y5 a9 a+ X& s: l3 V5 d6 D4 I, I! e' t( W$ `( ]8 L# z$ h- `
. w' c% ?. E( A H9 g
. Y( N X5 z% y# K! M' b1 x/ l2 T9 k: J+ f
|
|