【发布时间】:2018-12-04 08:59:51
【问题描述】:
我已阅读 ARM 文档,似乎他们在某些地方说 Cortex M4 可以重新排序内存写入,而在其他地方则表明 M4 不会。
具体来说,我想知道是否需要 DBM 指令,例如:
volatile int flag=0;
char buffer[10];
void foo(char c)
{
__ASM volatile ("dbm" : : : "memory");
__disable_irq(); //disable IRQ as we use flag in ISR
buffer[0]=c;
flag=1;
__ASM volatile ("dbm" : : : "memory");
__enable_irq();
}
【问题讨论】:
-
注意我问这个问题是因为我看到的所有示例代码在 __disable_irq() 和 __enable_irq() 之前都没有使用 DBM。所以我想知道它是否应该在那里?我也想知道什么时候应该使用 DBM。
标签: arm