字节对齐问题由来
在移植同事代码的时候发现到一个赋值变量的地方就会出现死机,进入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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。