diff --git a/firmware/target/arm/cpucache-armv7m.c b/firmware/target/arm/cpucache-armv7m.c index 5b9e084a1a..43f7ef8fe8 100644 --- a/firmware/target/arm/cpucache-armv7m.c +++ b/firmware/target/arm/cpucache-armv7m.c @@ -19,6 +19,7 @@ * ****************************************************************************/ #include "cpucache-armv7m.h" +#include "system.h" #include "regs/cortex-m/cm_cache.h" /* @@ -56,8 +57,9 @@ static inline void range_dcache_op(const void *base, unsigned int size, { arm_dsb(); - uint32_t addr = (uint32_t)base; - uint32_t endaddr = addr + size; + uint32_t base_addr = (uint32_t)base; + uint32_t addr = CACHEALIGN_DOWN(base_addr); + uint32_t endaddr = CACHEALIGN_UP(base_addr + size); while (addr < endaddr) {