【发布时间】:2015-12-06 23:48:01
【问题描述】:
如何使用适用于 ARM 的 IAR 嵌入式工作台插入编译器级别的内存屏障?
GCC 中的等价物是 asm volatile ("" : : : "memory")
User Guide 中没有屏障和围栏这两个词。
【问题讨论】:
-
AFAIK,IAR 使用 GCC 编译器。
-
@BasileStarynkevitch:好一个!他们有自己的编译器!
-
C11
stdatomics提供了一种标准方式——称为栅栏。否则使用内在函数,无论如何你必须仔细选择你需要的屏障。 -
@Olaf:我相信 IAR 还不支持 C11,只支持 C90 或 C99
-
@TomTanner, Olaf:这是一个编译器屏障,与 OP 发布的带有内存破坏器的 gcc-inline-assembly 相同。