|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
最近在用DSP28335时,发现数据类型与ARM体系的数据类型有些差异,做了以下测试,来确定DSP28335上数据类型的大小。
, j" ]' J" P1 P) z
9 V7 J; a9 u5 b' e
, Y9 M. |4 Z' r9 t$ }9 z 28335单位中长度为是16bit.! c" ]2 ?: G# J
: v* R: b( k: g( F) t. j# h
; b* \9 t/ U0 T0 d- X# F count = sizeof(char);# c' P' A: F, ]; q# ?* F
count = sizeof(int);1 L# ^; _4 m$ @, d. [. t
count = sizeof(double);
# C, Q( ?1 |6 g# @5 n5 |# h count = (sizeof(long)8 f& v# p7 Z% H
5 v9 i# b$ T! [2 x! b" d0 S7 H( C3 U" s
count = (sizeof(short), o- G# @* G8 |* X$ G
& s% P# D; o0 d0 P4 l8 n! V
% H, [1 @& u9 J$ u
count = (sizeof(float);
- D& c+ Z; {9 x- I9 v 通过查看寄存器发现:. m4 x; l/ K7 R0 t& f
, e W. _: F. c- ?
+ E, m3 z3 q% c& Y4 m: w c0 @
char : 1 (16bit)
# f1 U6 c4 G( Z% _9 h* O& uint : 1 (16bit)
1 R; N0 z( B; e( X! q* }8 i& ~+ j$ `double: 2 (32bit)5 ~1 k) v( ]" t5 Y- K/ ^% ^3 j& }
long: 2 (32bit)
- m' W( `+ c4 {1 Y# X2 J1 `short: 1 (16bit)$ g+ e5 k' s4 p v( K5 J
float: 2 (32bit)
) u S8 _# P5 b- _# Mlong long: 4 (64bit): M! X Z+ I4 k, J( @' ^* S
6 f# e' }# ^! U
/ K/ K* M8 b) B
----------------------------------------------------------------------------------------------
* T* x, W) A+ P' ^' d! y5 `
% W m+ l# }9 E, v4 Z5 c! K6 O; k# Y5 { l
struct SDATA_BIT{
' _ ?# g) v* ]( v- S0 o& q: x unsigned int D1 : 16;
1 f _- t+ `, E) i5 N9 _' m8 g0 B( y: J }$ d6 A
& t' d8 ]6 \+ t# U5 V+ u. D% r
unsigned int D2 : 16; 6 ]) ^3 x4 |9 u3 U- \. z6 S
- S6 D1 i1 d) S" M/ F) b- [3 y
unsigned int D3 : 4 ; 1 J* J } g2 V* u G3 O9 Z! V, E2 p1 p
A5 |7 u. Y8 @* H8 ?4 W. g8 ~- V9 D3 \) w5 R
unsigned int D4 : 1 ;
0 s' [4 r6 f4 y T m
/ ]. L( Q: K! y; Z1 U1 G0 g6 A0 ^. E8 K1 b; W) j" a6 O5 p% L
unsigned int D5 : 1 ; 7 B% a( p, N0 w( s6 B5 o
1 t' L _1 M! Q' u; y3 u5 Z* r
! D/ t" {, f! T4 q$ p$ e: p, a& N unsigned int D6 : 1 ;; f+ _8 @9 ]% F# R8 Y, [2 O6 {
2 i% u: {3 l# j( Z' i) p, {3 h
8 r9 q% y+ k7 G7 M unsigned int D7 : 1 ;/ c# J" a+ I% a$ p2 [8 U: N) A
5 ~* X0 n W- \1 r0 Q% }3 m A: R/ ?
! ~: b1 b: n6 w# r};! L6 M9 Y4 M4 h2 X' |
2 v/ ?# f$ Z. Q' O1 m' x- P4 `4 b) D0 i' k/ \, _
sizeof(struct SDATA_BIT sBIT) = 3; //
( s1 e/ \& ?) a: A* ]1 u8 W! E) Q E8 C, _$ c! W
# h4 j4 y3 W- U) [: s5 o, h由于DSP28335上的数据类型与ARM的不同,因此在做通信协议时,尤其是用到联合体、数组、结构体来存放数据时,要注意!!!
6 n' K* o2 x8 C
5 I C* \+ K9 s: w/ p( O" r. b( Y$ w L5 Y" ?+ l
|
|