【发布时间】:2014-11-03 22:50:50
【问题描述】:
我用KEIL编译一个程序。
程序使用代码
asm("NOP");
很遗憾,KEIL 编译器不接受该语句。
这个想法是通过使用 NOP(无操作)汇编代码来引入延迟。
在 C 中 this 的实际等价物是什么?这是否因我使用的嵌入式控制器而异?
【问题讨论】:
-
一些嵌入式编译器提供了一个内在函数
__delay_cycles(constant),它发出代码以等待多个周期。但是,我不确定 Keil 编译是否可以。 -
什么目标? - Keil 的 ARM 工具使用 ARM 的编译器(除非它真的很老,在 Keil 被 ARM 收购之前),而对于其他目标,他们使用自己的编译器。两者之间的专有扩展不同。然而,所有人都将有一种嵌入内嵌汇编器的方法;请参阅用户手册了解内联汇编语法,并将您的处理器指令集参考为适当的无操作指令。
标签: c embedded inline-assembly keil nop