我在 Eclipse IDE 中使用GCC(更正)SDCC 来为 8051 架构嵌入式目标编译 C 代码。我需要插入一些 NOP 进行计时,而且我无法让编译器接受内联汇编代码。
使用__asm__ ("; This is a comment\nlabel:\n\tnop");
(如下所示)或变体,我收到警告 112: function '__asm__' implicit declaration然后错误 101: too many parameters,就好像我正在尝试调用未声明的函数一样。我也尝试了SDCC 手册第 3.14 节中的所有其他选项。__asm ... __endasm
给出一个语法错误__asm
,与单个下划线相同,并且空格、换行符或同一行的组合没有帮助。
如果我将 Makefile 中的命令行正确拼凑在一起(没有#include 路径),SDCC 命令行上的 CFLAGS 为:
-Wp,-MD,$(@:%.rel=%.d),-MT,$@,-MP --disable-warning 110 -Wa,-p --model-medium