EasyFlash icon indicating copy to clipboard operation
EasyFlash copied to clipboard

log_seq_read读取数据超过1个扇区时,会数据错乱,应修改为

Open cenyi12345678 opened this issue 2 years ago • 0 comments
trafficstars

`static EfErrCode log_seq_read(uint32_t addr, uint32_t *log, size_t size) { EfErrCode result = EF_NO_ERR; size_t read_size = 0, read_size_temp = 0;

while (size) {
    /* move to sector data address */
    if ((addr + read_size) % EF_ERASE_MIN_SIZE == 0) {
        addr += LOG_SECTOR_HEADER_SIZE;
    }
    /* calculate current sector last data size */
    read_size_temp = EF_ERASE_MIN_SIZE - ((addr + read_size) % EF_ERASE_MIN_SIZE);
    if (size < read_size_temp) {
        read_size_temp = size;
    }
    result = ef_port_read(addr + read_size, log + read_size / 4, read_size_temp);
    if (result != EF_NO_ERR) {
        return result;
    }
    read_size += read_size_temp;
    size -= read_size_temp;
}

return result;

}`

cenyi12345678 avatar Sep 22 '23 06:09 cenyi12345678