抑制WindRiver(Diab)编译器中的指令重新排序

时间:2012-06-26 07:43:39

标签: c compiler-optimization

我正在寻找在WindRiver C编译器中禁止指令重新排序的正确和可接受的方法(AKA Diab C(?))。问题是我必须在同一个函数中多次编写硬件寄存器,我不希望优化器重新排序序列,或者更糟糕的是,将多个写入集合到一个中。请不要推荐“volatile”,因为我不想依赖这个看不见且不可靠的先决条件(主要是因为定义可能不在我的控制之下)。我目前正在使用一个空的内联汇编语句:

 asm volatile (" ");

作为代理,因为编译器文档说这将阻止重新排序,OTOH可能有一种更常见的方式,WindRiver C的每个体面用户都应该知道。

提前致谢

0 个答案:

没有答案
相关问题