Vit (05.11.2017 10:00, просмотров: 281) ответил Незнайкин на Здесь по недавней ссылке на арм-ресурс увидел кусочек кода, где сразу после удачного захвата семафора к разделяемому ресурсу, перед обращением к нему рекомендуется ставить DMB. И понял что ничего не понимаю в барьерах. Может, посвятим этому
КМК, у Joseph Yiu понятно написано, для чего каждый из барьеров применяется http://infocenter.arm.com/help/topic/com.arm.doc.dht0008a/DHT0008A_arm_synchronization_primitives.pdf
http://www.eecs.umich.edu/eecs/courses/eecs373/labs/refs/M3%20Guide.pdf
DMB - Data memory barrier; ensures that all memory accesses are completed before new memory access is committed
DSB - Data synchronization barrier; ensures that all memory accesses are completed before next instruction is executed
ISB - Instruction synchronization barrier; flushes the pipeline and ensures that all previous instructions are completed before executing new instructions
насчет команд - полезно ориентироваться в применении средств синхронизации, позволяющих осуществлять операции чтение-модификация-запись без блокирования прерываний и других потоков - посмотрите набор инструкций LDREXB/STREXB, LDREXH/STREXH, LDREXW/STREXW.
в аглицкой педивикии по барьерам немаленькая статья