|  | 
 
| 本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 ; @% P0 T: m  W  a9 y; \  P# A0 }! b! u1 y* n& P
 环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
 ' ]- Z. b1 e/ {" L自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的0 I( Z9 h  ^8 U" O# D0 [
 应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?
 & c  W8 Z+ V# c/ }# a3 ]$ `
 ' o& a  |* x! c+ |: b" J/ C- @
 : K; C( S9 U* b+ {* k& y下面是统计结果4 o' I2 @# y$ W$ t
 统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间    . M' \" S! Q, Z3 j. y
 emucycle0_0 = EMUCNT0;+ [5 h: }( C: |2 Z+ @" B. G
 emucycle1_0 = EMUCNT1;
 . Z% G2 S8 q* w! q* G7 i- Nemucycle0_1 = EMUCNT0;9 N: E3 b) k  [. @/ z7 ]8 B
 emucycle1_1 = EMUCNT1; " ~. v+ `7 L4 x8 ^
 emuoverhead = (emucycle0_1 - emucycle0_0);2 P6 J4 L( |# m6 x
 
 3 g% z/ ^6 y- \算法();" Z/ x' w: w7 g) v
 
 3 y/ u( d0 C8 y3 p  {emucycle0_1 = EMUCNT0;  E1 P$ x  D; D9 c# G9 m
 emucycle1_1 = EMUCNT1;" Y7 \& p+ o) B% c' G
 
 - p; g, n% S4 F5 ]Cycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;7 f; E  w! X8 p  U. [
 
 4 h7 P3 R( O4 R3 o% Q
 9 ?& v" L* B1 j( S0 H统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
 & N: r1 o& ?8 g9 [ DSP> cycles: 196468  :  118140003 ^, \: [% o+ P3 c: Y: o; P
 DSP> times: 430.85 us with CPU 456.
 & T$ t$ |# n" j1 ^6 P& f8 H: I DSP> cycles: 3238292  :  118140008 W( E8 H0 C1 D. @9 e; P, x; ~8 ~
 DSP> times: 7101.52 us with CPU 456.3 V5 i: s& M: Q" c9 `8 ]
 DSP> cycles: 157860  :  11814000
 0 h9 X9 Q/ I# y DSP> times: 346.18 us with CPU 456.
 3 C6 e! _6 S5 o/ m6 K/ L DSP> cycles: 3265684  :  11814000& |( r- b# P& T' T4 ^. X
 DSP> times: 7161.59 us with CPU 456.2 T* P# ?4 V0 `' b
 DSP> cycles: 156344  :  118140008 H3 D, ^& D9 B7 A
 DSP> times: 342.86 us with CPU 456.
 2 A( t, Y2 Y2 _$ v% ^: d DSP> cycles: 3304428  :  11814000' T. A4 t2 s' `& a
 DSP> times: 7246.55 us with CPU 456.7 X( d$ W. k: X; [
 ; R1 Y, U5 X; H) N% z
 设置:相应的表放到IRAM中了7 d& L2 t' R* }6 a
 SECTIONS/ a4 t$ d/ E2 M: H7 @, j
 {# h1 g& S( q& C6 x9 v! ^
 .edma_data>IRAM  align = 0x80
 ; t% q- g2 M# C5 T, {1 n    .audio_glb> IRAM align = 0x80- v) t. k7 K4 e6 u7 t; D" w$ n4 n  h
 .f_table>  IRAM,  align = 0x80
 . S+ b7 ]3 r% w1 e# u3 L3 V3 N        .f_text>  DSP_PROG,   align = 0x80
 : x9 k1 P# p  {( Z! G/ J- _        .f_glb> IRAM align = 0x80
 ) I6 ]* t% f" j; L! a3 W        .ref_glb > IRAM align = 0x801 j1 ^9 q) K6 M# z7 ?* A* Z$ [
 }
 ' H) b: r% h, K3 ~. o* K
 6 _1 h) H7 L  V/ D! V! J& z# M6 D; L5 M# q/ \: ~8 x! Z# r% @; y
 编译加了-O3 优化参数8 b9 ?# I& a! y* W7 ]* r
 
 7 U0 U# }" I  C6 X3 [0 Z& I$ ^5 Q0 V8 S  K3 u
 
 * D# z- b$ l4 Q& g; f! v$ h
 a, k. q# u0 O9 v7 E$ p( y, J; x4 a! f+ V% Z0 J. a' J
 
 # d" r% w8 ^) i/ o7 x! G  \
 | 
 |