Для предотвращения циклов ожидания на шинах и простаивания процессора в процессе сохранения данных, процессоры Cortex-M3 используют одновходовой буфер записи на шинах DCode и System.
Если буфер записи заполнен, последующие запросы на шине притормаживаются до тех пор, пока буфер не будет очищен. Буфер записи используется только тогда, когда шина ожидает фазу передачи данных буферезированного сохранения, во всех остальных случаях транзакция на шине немедленно завершается.
DMB
и DSB
инструкции ожидают очистку буфера записи перед завершением. Если во время ожидания очистки буфера во время выполнения инструкций DMB
или DSB
произошло прерывание, процессор вернёт управление на инструкцию непосредственно следующую после DMB
/DSB
после обработки прервания.
Произойдёт это оттого, что процесс обработки прерывания работает как операция барьера в памяти.
Режимы работы | Регистры процессора |