STM32使用结构体struct时的FLASH保存方式
在实际应用中,定义如下结构体:
typedef union
{
struct
{
temp[50];
}Array1;
struct
{
u8 a;
u8 b;
u8 c;
u16 d;
u16 e;
}Temp1;
}NewType;
假设a = 0x01; a = 0x02; b = 0x03; c = 0x0004; d = 0x0005;
在STM32的FLASH的某一地址(如0x800A000~0x800A00F)中的存储方式发生改变:01 02 03 FF 00 04 00 05;
在存储u16数据时,需要前面地址为半字的格式,比如01 23 45 67,如果存储c的时候高字节00在地址尾数为1、3、5、7的位置,FLASH会自动跳过一个8位数据。
以上推测仅作为记录,如有不对,请指正,感谢!