最近在用DSP28335时,发现数据类型与ARM体系的数据类型有些差异,做了以下测试,来确定DSP28335上数据类型的大小。
28335单位中长度为是16bit.
count = sizeof(char);
count = sizeof(int);
count = sizeof(double);
count = (sizeof(long)
count = (sizeof(short)
count = (sizeof(float);
通过查看寄存器发现:
char : 1 (16bit)
int : 1 (16bit)
double: 2 (32bit)
long: 2 (32bit)
short: 1 (16bit)
float: 2 (32bit)
long long: 4 (64bit)
----------------------------------------------------------------------------------------------
struct SDATA_BIT{
unsigned int D1 : 16;
unsigned int D2 : 16;
unsigned int D3 : 4 ;
unsigned int D4 : 1 ;
unsigned int D5 : 1 ;
unsigned int D6 : 1 ;
unsigned int D7 : 1 ;
};
sizeof(struct SDATA_BIT sBIT) = 3; //
由于DSP28335上的数据类型与ARM的不同,因此在做通信协议时,尤其是用到联合体、数组、结构体来存放数据时,要注意!!!