加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – IAR编译器中的指针

发布时间:2020-12-16 10:13:01 所属栏目:百科 来源:网络整理
导读:长话短说我在C中使用IAR EWARM编译器. uint8_t packet[2048];uint32_t* src = (uint32_t*)packet[9];uint32_t var = *src++; 最后一行导致总线故障. uint8_t packet[2048];uint32_t* src = (uint32_t*)packet[9];uint32_t var = 0xFE;*src++; 现在没有公交车
长话短说我在C中使用IAR EWARM编译器.

uint8_t packet[2048];
uint32_t* src = (uint32_t*)&packet[9];
uint32_t var = *src++;

最后一行导致总线故障.

uint8_t packet[2048];
uint32_t* src = (uint32_t*)&packet[9];
uint32_t var = 0xFE;
*src++;

现在没有公交车故障.我可以在调试器中看到src指向我希望它指向的数据.增量按预期工作但尝试读取它会导致总线故障.

有帮助吗?

解决方法

可能是您的MCU需要读取32位整数才能与32位对齐.

& packet [9]肯定不是32位对齐,这就是你出错的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读