1

我有用于与其他版本的 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那里背叛编译器,这会改变时间。

4

1 回答 1

1
于 2017-01-16T14:24:46.487 回答