对缓存的系统内存进行刷新。
参数
mem 内存指针。flag 刷新标志符。返回值
0 则表示API成功执行,否则执行失败。flag 可选值及作用:
HB_SYS_MEM_CACHE_INVALIDATE 使用 Clean + Invalidate 组合操作,将缓存中修改的数据写回内存并使缓存无效。
HB_SYS_MEM_CACHE_CLEAN 使用 Clean 操作,将缓存中修改的数据写回内存,但保留缓存副本。
当CPU写完数据后,需要使用 HB_SYS_MEM_CACHE_CLEAN 将缓存中修改的数据同步到内存中,否则可能出现以下情况:
该块内存被其他设备读取,读取到的数据是内存中的旧数据,而CPU新写的数据在缓存中。
该块内存之后被其他设备写入新数据,写入后使用 HB_SYS_MEM_CACHE_INVALIDATE 同步数据时会将缓存中的数据同步至内存,其他设备写入的数据被修改。
该块内存之后被其他设备写入新数据,写入过程中缓存中的数据同步至内存,导致内存中数据混乱。
当其他设备写完数据后,需要使用 HB_SYS_MEM_CACHE_INVALIDATE 使缓存失效,否则CPU读取数据时可能读取到缓存中的旧数据。