【FAQ】全志 F系列/R系列/V系列 RTOS平台cache操作接口介绍
-
1.主题
全志 F系列/R系列/V系列 RTOS平台cache操作接口介绍
2.问题背景
全志F系列/R系列/V系列所采用的RTOS,提供了一些关于 Cache 操作的接口,用于当不同 master 在内存上读写传递时使用,以下是 Cache 操作接口的使用介绍。
-
hal_dcache_clean
函数原型:void hal_dcache_clean(unsigned long addr, int len);
函数作用:将[addr, addr + len]地址在 dcache 上对应的数据刷回内存,其在dcache 上数据依旧有效。
使用场景:提供数据给外设时,需要将停留在 dcache 上的数据写回内存,以让外设可以直接访问内存获取该笔数据(外设访问不会经过 dcache)。 -
hal_dcache_invalidate
函数原型:void hal_dcache_invalidate(unsigned long addr, int len);
函数作用:将[addr, addr + len]地址在 dcache 上对应的数据无效。
使用场景:外设修改数据后,CPU需要将 dcache 上的数据无效,以让CPU可以获取到经过外设修改后的数据。 -
hal_dcache_clean_all
函数原型:void hal_dcache_clean_all(void);
函数作用:将所有的dcache 数据全部刷回。
使用场景:较少使用,一般在动态关闭Dcache 的场景下去使用。 -
hal_dcache_invalidate_all
函数原型:void hal_dcache_invalidate_all(void);
函数作用:将所有的dcache 数据全部无效。
使用场景:除了使能 dcache 的场景外,绝对不允许使用。 -
hal_icache_invalidate
函数原型:void hal_icache_invalidate(unsigned long addr, int len);
函数作用:将[addr, addr + len]地址在 icache 上对应的数据无效。
使用场景:自修改代码指令时,需要无效icache。 -
hal_icache_invalidate_all
函数原型:void hal_icache_invalidate_all(void);
函数作用:将所有的dcache 数据全部无效。
使用场景:自修改代码指令时,需要无效icache。
-
-
-
-
-
-
-
-
-
-
-
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号