我有一个嵌入式8051核心(在cypress FX2中)的遗留代码,使用与其他版本的SDCC一起编译。但是,目前的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;
}
和其他事件。
由于_naked
实际上应该告诉C编译器" nah,忽略你是C编译器的事实,并且理解你需要保存帧上下文&# 34;我不觉得我应该#define
离开它。
这有什么解决方案吗?我是否应该继续使用_naked
函数在哪里手动内联汇编程序?我觉得我在那里CALL
背叛了编译器,这会改变时机。
答案 0 :(得分:0)
_naked
被__naked
取代。同样适用于asm
/ __asm
,at
/ __at
,interrupt
,bit
,xdata
/ __…
。
所以,这被证明是正则表达式替换的练习。
我仍然遇到链接器/ ranlib /大多数ar
问题,而且CMake忽略了我指示它用作编译器的内容,但是很好。