mirror of
https://gitee.com/Armink/EasyFlash.git
synced 2024-11-29 10:48:05 +08:00
Update ef_env.c
EF_WG_ALIGN_DOWN(size) 可能为0,需要额外判断以避免某些芯片flash写0长度数据出错。
This commit is contained in:
parent
ef3556f202
commit
d80224448a
@ -1286,9 +1286,13 @@ static EfErrCode align_write(uint32_t addr, const uint32_t *buf, size_t size)
|
||||
#endif
|
||||
|
||||
memset(align_data, 0xFF, align_data_size);
|
||||
result = ef_port_write(addr, buf, EF_WG_ALIGN_DOWN(size));
|
||||
align_remain = EF_WG_ALIGN_DOWN(size);//use align_remain temporary to save aligned size.
|
||||
|
||||
align_remain = size - EF_WG_ALIGN_DOWN(size);
|
||||
if(align_remain > 0){//it may be 0 in this function.
|
||||
result = ef_port_write(addr, buf, align_remain);
|
||||
}
|
||||
|
||||
align_remain = size - align_remain;
|
||||
if (result == EF_NO_ERR && align_remain) {
|
||||
memcpy(align_data, (uint8_t *)buf + EF_WG_ALIGN_DOWN(size), align_remain);
|
||||
result = ef_port_write(addr + EF_WG_ALIGN_DOWN(size), (uint32_t *) align_data, align_data_size);
|
||||
|
Loading…
Reference in New Issue
Block a user