对缓存的系统内存进行刷新。
参数
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读取数据时可能读取到缓存中的旧数据。