Переглянути джерело

add compiler memory barriers in ARM cache functions

teensy4-core
PaulStoffregen 5 роки тому
джерело
коміт
7d82bcde0c
1 змінених файлів з 3 додано та 0 видалено
  1. +3
    -0
      teensy4/imxrt.h

+ 3
- 0
teensy4/imxrt.h Переглянути файл

{ {
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;

Завантаження…
Відмінити
Зберегти