Lightelf (05.11.2017 15:54, просмотров: 183) ответил Незнайкин на Здесь по недавней ссылке на арм-ресурс увидел кусочек кода, где сразу после удачного захвата семафора к разделяемому ресурсу, перед обращением к нему рекомендуется ставить DMB. И понял что ничего не понимаю в барьерах. Может, посвятим этому
Если один процессор и обращение к данным в памяти (обычным переменным) - то барьеры не нужны. Барьеры нужны, если например модифицируется таблица векторов: запретили прерывания, __ISB(), записали адрес нового обработчика, __DSB(), разрешили прерывания. Или при обращении к устройствам: включили тактирование блока, __DSB(), обращаемся к блоку. Или: записали данные в память, __DSB(), командуем DMA забрать данные. Или если модифицируем код, тогда перед обращением к измененному коду - __ISB(). Как-то так.
Не надо делать мне как лучше, оставьте мне как хорошо