2015-09-10 7 views
2

Как вставить барьер уровня уровня компилятора с помощью встроенного инструментария IAR для ARM? Эквивалент в GCC будет asm volatile ("" : : : "memory")Как вставить барьер памяти с помощью IAR?

Слова барьер и забор отсутствуют в User Guide.

+0

AFAIK, IAR использует компилятор GCC. –

+0

@BasileStarynkevitch: Хороший! У них есть свой собственный компилятор! – Olaf

+1

C11 'stdatomics' обеспечивают стандартный путь - называемые заборы. В противном случае используйте встроенные функции. Любой способ, которым вы должны тщательно выбирать, какой барьер вам нужен. – Olaf

ответ

1

Вы можете использовать тот же встроенный ассемблер, что и в gcc, если ваши IAR-инструменты являются достаточно новыми. Чтобы получить аппаратные эффекты, вы можете попробовать поместить инструкцию DMB в встроенный оператор ассемблера или просто использовать встроенную функцию __DMB().