本帖最后由 lvben5d 于 2022-9-28 11:19 编辑
keil5 for arm ,对于32位机 比如AT32 结构体编译的时候是默认4字节对齐,且是小端模式~如果你自己有耐心 排好位置,则巧合到跟1字节对齐一样数值。如下图:
当需要保存一页数据的时候 传递SystermInfo 结构体首地址进去,
EEPROM_EraseAndWriteOnePage(FACTORY_FLASH_ADDRESS, (u32*)&SysInfo, NEED_SAVE_WORDS);
但如果当中有个u32 或 float类型的变量时候
Dev_type 和 C之间 会占2个空位,作为 xx xx Dev_type Factory_recovery 补齐4字节!
因为下面函数是4字节写入 所以浪费了2字节内存空间和FLASH空间!
最方便是
就不用担心混入u32 float后 浪费内存和flash的问题了。
|