_packed / #pragma pack() 字节对齐问题

 

项目需要,需要spiflash存一些数据(包含结构体变量、数组等),读写接口需要封装的相对灵活
(协议栈、交互变量、状态机参数等,在掉电重启后能够按需求恢复),数据项存储偏移地址需要
较精确,所以存储结构体变量类型都用__packed修饰防止编译器填充字节,调试时候发现函数中访
问结构体中某些长整型变量会导致hardfault_handler!所以排列结构体变量时候还是要养成好习惯,
总结2个原则:

 

1.长字节放在前边
2.单字节放前边要保持是长字节整数倍(不够可以补保留字节)

附上两个链接:

博客园King先生  http://www.cnblogs.com/King-Gentleman/p/5940480.html
正点原子              http://www.openedv.com/thread-7415-1-1.html

cortex-M权威指南要好好翻翻了。

 

转载于:https://www.cnblogs.com/firstparke/p/7806219.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值