1. 优化Flash内存管理, Crc32延后, 避免还在不断写入数据导致立刻计算CRC
This commit is contained in:
parent
05e1e0557b
commit
f0d6e3547c
@ -121,10 +121,10 @@ static HTimer_t sBackupTimer = HTIMER_INVALID;
|
||||
#ifndef HFLASH_USE_FLASH_MEM
|
||||
// 同步页定时器
|
||||
static HTimer_t sSyncPageTimer = HTIMER_INVALID;
|
||||
#endif
|
||||
|
||||
// 同步页表缓存定时器
|
||||
static HTimer_t sSyncCacheTimer = HTIMER_INVALID;
|
||||
#endif
|
||||
|
||||
// 存储需要备份的保护区地址页偏移
|
||||
static HVECTOR_DEFINE32(sNeedBackupOffset, 10);
|
||||
@ -607,12 +607,10 @@ static void WritePage(uint32_t index, HFlashPageInfo *info)
|
||||
|
||||
static void SyncCachePage()
|
||||
{
|
||||
#ifndef HFLASH_USE_FLASH_MEM
|
||||
if (sSyncCacheTimer != HTIMER_INVALID) {
|
||||
HTimerRemove(sSyncCacheTimer);
|
||||
sSyncCacheTimer = HTIMER_INVALID;
|
||||
}
|
||||
#endif
|
||||
|
||||
for (uint32_t i = 0; i < sInfo.pageCacheUseNum; ++i) {
|
||||
// 更新Crc32
|
||||
@ -635,7 +633,6 @@ static void SyncCachePage()
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef HFLASH_USE_FLASH_MEM
|
||||
static void StartSyncCachePage()
|
||||
{
|
||||
if (sSyncCacheTimer != HTIMER_INVALID) {
|
||||
@ -644,15 +641,22 @@ static void StartSyncCachePage()
|
||||
}
|
||||
|
||||
sSyncCacheTimer = HTimerAdd(HFLASH_TIMER_ID, HFLASH_SYNC_CACHE_PAGE_TIME, SyncCachePage, kHTimerOnce);
|
||||
#ifndef HFLASH_USE_FLASH_MEM
|
||||
StartSyncPageInfo();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void WriteCachePage(HFlashCacheInfo *info)
|
||||
{
|
||||
++info->info.modifyCount;
|
||||
info->waitWrite = 1;
|
||||
#ifdef HFLASH_USE_FLASH_MEM
|
||||
// 如果是延迟CRC的, 不需要立刻同步, 避免还在不断写
|
||||
if (info->waitCrc) {
|
||||
StartSyncCachePage();
|
||||
return ;
|
||||
}
|
||||
|
||||
SyncCachePage();
|
||||
SyncPageInfo();
|
||||
#else
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user