platform/nuttx: Flush icache/dcache properly (#4147)

Enhance the os_dcache_flush and os_icache_flush functions to ensure
proper cache invalidation, improving memory management efficiency.
* Added cache invalidation for data cache
* Implemented cache invalidation for instruction cache

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
This commit is contained in:
Huang Qi 2025-03-24 07:09:57 +08:00 committed by GitHub
parent 3e20194ecd
commit 5d8fe5dcfd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -10,6 +10,8 @@
#include <nuttx/arch.h> #include <nuttx/arch.h>
#endif #endif
#include <nuttx/cache.h>
int int
bh_platform_init() bh_platform_init()
{ {
@ -115,11 +117,14 @@ os_dcache_flush()
&& defined(CONFIG_ARCH_HAVE_TEXT_HEAP_SEPARATE_DATA_ADDRESS) && defined(CONFIG_ARCH_HAVE_TEXT_HEAP_SEPARATE_DATA_ADDRESS)
up_textheap_data_sync(); up_textheap_data_sync();
#endif #endif
up_invalidate_dcache_all();
} }
void void
os_icache_flush(void *start, size_t len) os_icache_flush(void *start, size_t len)
{} {
up_invalidate_icache((uintptr_t)start, (uintptr_t)start + len);
}
#if (WASM_MEM_DUAL_BUS_MIRROR != 0) #if (WASM_MEM_DUAL_BUS_MIRROR != 0)
void * void *