经实验,用COMPILER.H提供的中断格式
INTERRUPT(t0_serve, 1)
{
}
则可以正常拆分编译。
在上述中断函数当中插入了外部函数之后,仍产生同样的错误。
另有一问题:如果main含有自定义的_sdcc_external_startup子程序时会报以下警告:
?ASlink-Warning-Definition of public symbol '__sdcc_external_startup' found more than once:
Library: '.\build\Debug\no_entry_bundled.lib', Module: 'main_2.rel'
Library: 'e:\SDCC\bin..\lib\small/libsdcc.lib', Module: '_startup.rel'
字面意思是这一子程序在sdcc标准库和用户库当中分别出现了两次。本人的程序当中使用这个子程序进行xdata的初始化,虽然现在还没用到xdata,但是之后可能会在这里出错,所以需要解决这个警告。