From f9adf31468b227e67ecbc600f2ea0684592f4a5c Mon Sep 17 00:00:00 2001 From: shiyj Date: Tue, 12 Sep 2023 14:25:25 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E5=BD=93=E7=8E=AF=E5=BD=A2=E7=BC=93?= =?UTF-8?q?=E5=86=B2=E7=9A=84=E5=BC=80=E5=A7=8B=E5=9C=B0=E5=9D=80=E5=A4=A7?= =?UTF-8?q?=E4=BA=8E=E7=BB=93=E6=9D=9F=E5=9C=B0=E5=9D=80=E6=97=B6=EF=BC=8C?= =?UTF-8?q?index=E8=BD=AC=E6=88=90=E5=9C=B0=E5=9D=80=E6=97=B6=E8=A6=81?= =?UTF-8?q?=E5=8A=A0=E4=B8=8Alog=5Farea=5Fstart=5Faddr=20=E7=94=B1?= =?UTF-8?q?=E4=BA=8E=E6=95=B4=E4=B8=AA=E5=AD=98=E5=82=A8=E7=9A=84=E8=B5=B7?= =?UTF-8?q?=E5=A7=8B=E5=9C=B0=E5=9D=80=E4=B8=8D=E4=B8=80=E5=AE=9A=E6=98=AF?= =?UTF-8?q?LOG=5FAREA=5FSIZE=E7=9A=84=E5=80=8D=E6=95=B0=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E9=80=9A=E8=BF=87=E5=8F=96=E4=BD=99=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=81=8F=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- easyflash/src/ef_log.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/easyflash/src/ef_log.c b/easyflash/src/ef_log.c index 72709e1..1017039 100644 --- a/easyflash/src/ef_log.c +++ b/easyflash/src/ef_log.c @@ -474,13 +474,15 @@ static uint32_t log_index2addr(size_t index) { size_t sector_num = index / (EF_ERASE_MIN_SIZE - LOG_SECTOR_HEADER_SIZE) + 1; header_total_offset = sector_num * LOG_SECTOR_HEADER_SIZE; + uint32_t virtual_addr = log_start_addr + index + header_total_offset; if (log_start_addr < log_end_addr) { - return log_start_addr + index + header_total_offset; + return virtual_addr; } else { if (log_start_addr + index + header_total_offset < log_area_start_addr + LOG_AREA_SIZE) { - return log_start_addr + index + header_total_offset; + return virtual_addr; } else { - return (log_start_addr + index + header_total_offset) % LOG_AREA_SIZE; + // the address will restart from the first sector address. + return virtual_addr - (log_area_start_addr + LOG_AREA_SIZE) + log_area_start_addr; } } }