sjx000000 发表于 2015-9-24 10:47:51

NIOS 中 *(short *)&buf[1]=0x1234,buf没存储到正确数值

本帖最后由 sjx000000 于 2015-9-24 10:49 编辑

*(short *)&buf_dd=0x1234;执行后得到:buf=0x34,buf=0x12。
按照取地址的运算是buf=0x34,buf=0x12,和运算结果不一样。取地址是buf,为什么是从buf_dd开始存数据,不是buf_dd。
有什么方法能实现吗?

jungleyang 发表于 2015-9-24 11:32:49

这个是内存对齐的原因,你按short写就必须要两字节对齐,Nios又是小段格式,所以就很好理解你得出的结果。

sjx000000 发表于 2015-9-24 11:50:58

jungleyang 发表于 2015-9-24 11:32
这个是内存对齐的原因,你按short写就必须要两字节对齐,Nios又是小段格式,所以就很好理解你得出的结果。 ...

在STM32 中没发现这种问题。nios 中能否通过设置或其他方式解决?
页: [1]
查看完整版本: NIOS 中 *(short *)&buf[1]=0x1234,buf没存储到正确数值