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 X
5. 在DSP6000上,各种存储类型及其长度分别是:
1 d, ?! O/ a' r7 L
& R% _: \1 i$ m- U9 H4 I# C8 w
' U/ o- d% w8 U! E
short 16 bits -32768~32767
' ?) M4 E+ I1 R7 ?
9 `5 J3 x) H7 q
5 K" B: q. J3 B. I0 W
int 32 bits −2147483648~2147483647
8 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