From dda4f91b420c7ffd317b9c16cbf4096ab369abba Mon Sep 17 00:00:00 2001 From: coffee Date: Tue, 2 Dec 2025 21:00:46 +0800 Subject: [PATCH] =?UTF-8?q?1.=20Flash=E6=A8=A1=E5=9D=97=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=B0=83=E6=95=B4=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/HFlashServer.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/HFlashServer.c b/src/HFlashServer.c index 6dbfb6a..deb9479 100644 --- a/src/HFlashServer.c +++ b/src/HFlashServer.c @@ -729,6 +729,16 @@ void HFlashInitCheck() sPageInfo.pageNum = num; } +///< 检查是否重叠, 重叠返回1 +static uint8_t _CheckOverLap(uint32_t index, HFlashPageInfo *info, void *userData) +{ + HFlashCacheInfo *cache = (HFlashCacheInfo *)userData; + if (cache->pos == index) { + return 0; + } + + return IsOverLap(info->addr, info->size, cache->info.addr, cache->info.size); +} void HFlashRegister(HFlashAddr_t addr, uint32_t size) { if (IS_NOT_4(size)) { @@ -755,7 +765,7 @@ void HFlashRegister(HFlashAddr_t addr, uint32_t size) cache->info.size = size; // 检查页表地址是否和当前页表地址范围内存在重叠 - if (ScanPage(_CreatePageInfoHelper, &cache->info)) { + if (ScanPage(_CheckOverLap, &cache->info)) { FATAL_ERROR("addr[0x%08x] size[%d] exist range Error", addr, size); return ; }