字节对齐问题由来

移植同事代码时候发现一个赋值变量的地方就会出现死机,进入hardfault,怎么也找不不到原因最后没办法去了github https://github.com/armink/CmBacktrace/blob/master/README_ZH.md
CmBacktrace移植成功后发现问题依旧指向如下函数,此函数只是一个赋值给uint16_t 赋值而已,一开始没有特别注意,红箭头处的dat是uint8_t 类型,u8地址连续2段,强转为u16类型
在这里插入图片描述
代码本意是将dat[1]和dat[2]的数据通过地址方式强转为u16的数据
dat[1]和dat[3]的地址我们看下如下发现根本对不齐地址,因此强转一定会出现问题
在这里插入图片描述
所以还是乖乖的通过原子”的u8 来才操作是最安全的办法
chart.js/

原文地址:https://blog.csdn.net/qq_14820081/article/details/134788583

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_39636.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注