从PC上向ADI DSP平台移植时,经常会出现一些问题,其中很多问题和字节对齐有关。这类问题往往在PC上测试成功,在DSP上也能成功编译链接,但是运行却会出错,导致这类问题很难查出并解决。
问题成因:
我使用的是ADI的Blackfin系列DSP,不知道其他平台是否有这个规定。就是char型数据类型地址可以任意,short型数据类型地址必须被2整除,int型数据类型地址必须被4整除,依此类推,即基础数据类型的地址必须被这种数据类型的大小整除。
而一般PC上是没有这个规定的。于是问题来了,比如下面的取数据函数,在PC上没有问题,在ADI DSP上运行肯定会出错的。
void get_data(unsigned char *inbuf) { char data1; short data2; |