我有用于与其他版本的 SDCC 一起编译的嵌入式 8051 内核(在 cypress FX2 中)的旧代码。但是,当前的 SDCC 不知道_naked
限定符:
delay.c:27: syntax error: token -> '_naked' ; column 21
由触发
static void
udelay1 (void) _naked
{
_asm ; lcall that got us here took 4 bus cycles
ret ; 4 bus cycles
_endasm;
}
和其他事件。
实际上应该告诉 C 编译器“不,忽略您_naked
是 C 编译器并了解您需要保存帧上下文的事实”,我觉得我不应该#define
将其删除。
有什么解决办法吗?我应该继续并在使用_naked
函数的地方手动内联汇编程序吗?我觉得我会在CALL
那里背叛编译器,这会改变时间。