DSP TMS320C67xx 系列unsigned long类型与unsigned int 不同

在调试dsp的时候遇到一件离奇的事情,在校验接收到的数据时,一半对一半错,并且校验程序是根据官方例程直接用的。

在debug过程中发现,unsigned long的变量显示的位数和预想的不太一样,是40位。果断将原程序改为unsigned int 数据完全正确了。

问题的原因就在于TMS320C6000系列的unsigned long是5个字节40位,和int的4字节32位不同;每次使用unsigned long进行强制转换时,最高的两位在00和FF之间变化,从而导致了校验会出现错误。

随后进一步进行了测试,发现sizeof(long)的结果是8,sizeof(int)的结果是4,sizeof(long long)的结果是8,和手册提供的long是40位不同,这里暂时还有疑问,以后再去深究。

DSP TMS320C67xx 系列unsigned long类型与unsigned int 不同

 

上一篇:Java中间(三十五)-----Java详细设置(一个):请指定初始容量设置


下一篇:40张图文详解,我就不信你还参透不了并发编程,Java学习笔记在互联网上火了