LZ
идет выравнивание по 4 байта так?
Size: a a a
LZ
LZ
E
AK
FlashWriteParams(0x8003C00, Setting, sizeof(SettingStruct)); // вызов
// SettingStruct *tParams обязательно выравнивать к слову
void FlashWriteParams(uint32_t Address, uint8_t *tParams, uint32_t tCnt)
{
uint32_t i;
FLASH_Unlock();
FlashErase(Address);
for(i = 0; i < tCnt; i = i + 2)
{
FLASH_Write(Address, (uint8_t*)tParams);
tParams = tParams + 2;
}
}
AK
E
FlashWriteParams(0x8003C00, Setting, sizeof(SettingStruct)); // вызов
// SettingStruct *tParams обязательно выравнивать к слову
void FlashWriteParams(uint32_t Address, uint8_t *tParams, uint32_t tCnt)
{
uint32_t i;
FLASH_Unlock();
FlashErase(Address);
for(i = 0; i < tCnt; i = i + 2)
{
FLASH_Write(Address, (uint8_t*)tParams);
tParams = tParams + 2;
}
}
AK
E
AK
AK
E
LZ
LZ
LZ
E
LZ
#define SETTINGS_SIZE ((uint16_t ) sizeof(Setting_type) / 2U)
AK
E
#define SETTINGS_SIZE ((uint16_t ) sizeof(Setting_type) / 2U)
LZ