| { | { | ||||
| uint32_t location = (uint32_t)addr & 0xFFFFFFE0; | uint32_t location = (uint32_t)addr & 0xFFFFFFE0; | ||||
| uint32_t end_addr = (uint32_t)addr + size; | uint32_t end_addr = (uint32_t)addr + size; | ||||
| asm volatile("": : :"memory"); | |||||
| asm("dsb"); | asm("dsb"); | ||||
| do { | do { | ||||
| SCB_CACHE_DCCMVAC = location; | SCB_CACHE_DCCMVAC = location; | ||||
| { | { | ||||
| uint32_t location = (uint32_t)addr & 0xFFFFFFE0; | uint32_t location = (uint32_t)addr & 0xFFFFFFE0; | ||||
| uint32_t end_addr = (uint32_t)addr + size; | uint32_t end_addr = (uint32_t)addr + size; | ||||
| asm volatile("": : :"memory"); | |||||
| asm("dsb"); | asm("dsb"); | ||||
| do { | do { | ||||
| SCB_CACHE_DCIMVAC = location; | SCB_CACHE_DCIMVAC = location; | ||||
| { | { | ||||
| uint32_t location = (uint32_t)addr & 0xFFFFFFE0; | uint32_t location = (uint32_t)addr & 0xFFFFFFE0; | ||||
| uint32_t end_addr = (uint32_t)addr + size; | uint32_t end_addr = (uint32_t)addr + size; | ||||
| asm volatile("": : :"memory"); | |||||
| asm("dsb"); | asm("dsb"); | ||||
| do { | do { | ||||
| SCB_CACHE_DCCIMVAC = location; | SCB_CACHE_DCCIMVAC = location; |