DSP编程中的字节对齐

在从PC移植到ADI DSP平台时,由于字节对齐的差异,可能导致程序运行错误。例如,short型数据地址必须为偶数,int型为4的倍数。解决方法包括分解长数据类型为char读取或使用结构体进行对齐转换。建议尝试不同方法,根据实际效果选择最佳方案。
摘要由CSDN通过智能技术生成

PC上向ADI DSP平台移植时,经常会出现一些问题,其中很多问题和字节对齐有关。这类问题往往在PC上测试成功,在DSP上也能成功编译链接,但是运行却会出错,导致这类问题很难查出并解决。

问题成因:

我使用的是ADIBlackfin系列DSP,不知道其他平台是否有这个规定。就是char型数据类型地址可以任意,short型数据类型地址必须被2整除,int型数据类型地址必须被4整除,依此类推,即基础数据类型的地址必须被这种数据类型的大小整除。

而一般PC上是没有这个规定的。于是问题来了,比如下面的取数据函数,在PC上没有问题,在ADI DSP上运行肯定会出错的。

void get_data(unsigned char *inbuf)

{

char data1;

short data2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值