字节对齐问题由来很关键
- 字节对齐问题由来
字节对齐问题由来
在移植同事代码的时候发现到一个赋值变量的地方就会出现死机,进入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/