EDA365电子论坛网

标题: 了解一下DSP6000的几个简单优化技巧 [打印本页]

作者: pulbieup    时间: 2019-8-14 10:40
标题: 了解一下DSP6000的几个简单优化技巧
1. 不要假设DSP6000上的int类型与long长度相同,在DSP6000上,int类型占32bits,而long类型占40bits,另有一种long long类型为64bit长度2 y% U  K: X' H: ]. d1 b- \$ s' i

1 M& n9 Y9 K2 I& {- z/ y; Q
- M# X/ |! j: a7 w8 D7 G: M' y
2. 定点乘法最好使用short类型,这样只需要1个时钟周期,使用int类型需要5个时钟周期/ L0 V2 ~* _" k- ^
- [3 I- m& S" v- K6 u& d9 O
. p. S, K  M1 `4 m, h" B; j
3. 使用int或unsigned int作为循环计数变量的类型,这样可以避免无谓的符号扩展指令) t  D5 r8 R4 G6 |8 b* q# K
$ b! t( j1 Y) ?2 C9 K/ F* A( j
$ W$ ^8 b  ^: O2 E- z
4. 在C6700上使用浮点指优化mv6700编译优化选项8 m& l1 x/ G$ B2 z2 W( T( @

- n8 ~/ {+ T3 O2 J. v& S

8 ~# I9 d  ], C1 H2 X5. 在DSP6000上,各种存储类型及其长度分别是:1 d, ?! O/ a' r7 L

& R% _: \1 i$ m- U9 H4 I# C8 w

' U/ o- d% w8 U! Eshort                  16 bits            -32768~32767
' ?) M4 E+ I1 R7 ?
9 `5 J3 x) H7 q

5 K" B: q. J3 B. I0 Wint                       32 bits           −2147483648~21474836478 G, W6 v  \/ }* n1 i
" z' t; M  a, {/ a+ j5 \0 I
3 O  K8 D: N/ `9 b7 j
long                    40 bits           −549755813888~549755813887
4 @& Y+ k' b0 i) W6 \: p
$ V! k1 g0 ~1 T. ]' _/ y, Q- e+ r
, A- |* H3 k1 h7 I/ H1 S7 P
指针                    40 bits           0000:0000h~FFFF:FFFFh* i" [) v1 a% T5 X, x+ X0 Y
  J# Z' R9 R: s* s$ a, M9 y
" w/ D& c3 `: Z8 S1 q$ h! u
long long             64 bits           -9223372036854775808~9223372036854775807
6 G% |& e" u% ]$ h: W; w/ q! i0 ^1 ?: }0 Z
; B/ P, G8 q& ]" i
float                     32 bits           1.17549435e−38~3.40282347e+38
3 z* m1 I* v) j/ w$ k6 j4 t
! N3 k  s- ]: ?: |

( l8 d3 k- b, e1 |double                 64 bits           2.2250738585072014e−308~1.7976931348623157e+308
: h6 I7 P& n1 }5 e$ k8 J  t( m" ^5 i" D

+ G2 b4 }. e+ H' G2 Z注意:尽管float与int的单位存储长度一样,但由于内存存储的数据表达方式不同,float的存储数据范围要比int类型大得多。
# G, B6 D$ ^# J# o- T4 z" }5 `1 z7 O8 s& W7 W8 f! M9 y
& D0 s5 K" c  _& x# b; g6 f
/ [9 \9 `3 ^1 I, t9 C
+ [7 b% d1 C! b  b% Z$ V6 E

) I. U9 @5 E# z1 O# A- T. l) s7 p! ?8 `5 `

作者: wu68aq    时间: 2019-8-14 18:40
看看楼主说的优化技巧。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2