EDA365电子论坛网

标题: DSP28335数据类型 [打印本页]

作者: kiygb    时间: 2021-12-6 11:15
标题: DSP28335数据类型
       最近在用DSP28335时,发现数据类型与ARM体系的数据类型有些差异,做了以下测试,来确定DSP28335上数据类型的大小。5 H# y% ~1 `0 O$ Q* ^5 U

6 z! `4 `! d/ n
. v" l. q" h! i; c% @7 }$ [
      28335单位中长度为是16bit.
$ g* u3 [% Y4 |) A0 W2 n0 y% l$ y9 \( v  ^# y) u  L! \* \, y) p0 f

* z# X& `- _/ `" M7 T+ k0 @" X; _2 K/ a: g  count = sizeof(char);
2 |8 M5 V7 F) [* h* o4 x% e  count = sizeof(int);6 V0 Y  L0 G7 M! A4 f9 \* J
  count =  sizeof(double);
- ^' }" b. y! S$ Y6 x8 U  count =  (sizeof(long)% n9 f- E8 W1 |9 n6 m
5 X! x3 o( w: s" F, p1 G
0 l; O( t. m% L; Y6 A& k
   count =  (sizeof(short)
  b- B3 Z3 `+ S* _- h  l2 H, D  n( x
+ H% Y' ]2 Z- E0 v) ]+ z, u

; @; Q+ C- z5 ^1 v5 ] count =  (sizeof(float);
$ E: g- H0 T( H, L. {7 W) L& j 通过查看寄存器发现:
/ M; T" ~+ C  K" ]3 y! U% Q# t1 n1 p% c+ X) t
0 l! @. n# X1 o5 i& w  N
char : 1  (16bit)! W* q/ A" L/ m: o" p, T3 r
int     : 1  (16bit)7 D( J+ ?- C6 x( Y
double: 2  (32bit)( d- X7 |& h: y9 T, U
long: 2  (32bit)
$ m, F4 N4 b' N# `( t' A& p; wshort: 1  (16bit)
" D6 O0 h% l$ L3 ^float: 2  (32bit)
# B: o8 j6 E3 P, Tlong long: 4  (64bit)1 C. K1 a& V2 F! Q& Q

. d4 Q/ Z3 d4 u" I

+ E$ A0 D/ p* n+ m6 [ ----------------------------------------------------------------------------------------------; ~/ {9 R; E, C$ M: T8 @

7 B/ ]+ W6 a+ G' N! C. t
' }/ N3 |, ?/ K& W
struct SDATA_BIT{
+ S: R- ~! U3 C/ s2 V unsigned int  D1     : 16;
  D1 ^% b0 m* g% a: Q$ v3 r* i+ h. L* q- E& P; W8 i" k2 t
8 P' M3 R; T7 f6 n0 B. b
unsigned int  D2      : 16; ! I: e" @5 E  n! e. ]3 o

/ I: K! ]! w! _- q9 W

0 y* G* ]7 L) T  h unsigned int  D3      : 4 ;
2 E' Z! @% M2 C; d( B
! F7 E4 |5 r/ ~* j! w  ]
% o; q$ B& B! @; M/ V0 C: Y
unsigned int  D4      : 1 ;- L' C/ `2 C& X4 F
+ u5 ^. q# A; p( w5 c- c# `
7 Z2 y0 E/ ^3 c; E; x4 H
unsigned int  D5      : 1 ; 3 g* u, `6 p. c/ _% c" B
9 \4 ~6 R& u) x! Y3 T- T' y1 g# E. G
/ D$ y! O" n" `- K6 B
unsigned int  D6      : 1 ;
* r0 Z1 l9 ^3 v3 ]1 `1 ]) n) U
1 n+ i0 b$ |+ z8 J* C
% V* c: l1 H, _  \
unsigned int  D7     : 1 ;1 f, l: p7 {. m# S8 `) N7 D
1 W5 e5 b& p9 A5 K8 G

5 w' J0 y2 m! q$ H5 G};
( p. B" j- O1 U/ V5 J. G$ A+ u' n6 T1 v$ C5 ^
- B# f3 O0 e, T, n# n/ f3 E
sizeof(struct SDATA_BIT  sBIT) = 3; //
& ?. ^/ N+ M( D
7 x' }; c, M$ R& E

6 T2 f5 s$ \/ u. k6 Y4 g由于DSP28335上的数据类型与ARM的不同,因此在做通信协议时,尤其是用到联合体、数组、结构体来存放数据时,要注意!!!5 S0 J# h, q# G7 g/ F

+ S* W7 ]! l+ i: ~1 Q) a1 K+ w4 N1 k1 }7 h' h

作者: grand    时间: 2021-12-6 13:07
28335单位中长度为是16bit
作者: nuiga    时间: 2021-12-6 13:08
DSP28335上的数据类型与ARM的不同
作者: MLXG    时间: 2021-12-6 13:09
用到结构体时要区分




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