汇编,中断定义的冲突



我将一些新的C软件例程与现有的汇编语言组合在一起。

我正在寻找这些错误

    multiple definition of `_U1RXInterrupt'
    multiple definition of `_U2RXInterrupt'
    multiple definition of `_U3RXInterrupt'

在哪里,何时,如何,我得到C编译器让我有U1RXInterrupt为我的汇编例程?U2RXInterrupt

同上

更新2013 - 3月13日

刚刚在C代码中发现了这个。这就是我问题的根源吗?如果我把这个拿走,我的矛盾会结束吗?

   //********************U1RX interrupt********************************//
   void __attribute__ ((interrupt, no_auto_psv)) _U1RXInterrupt(void) 
   {
    IFS0bits.U1RXIF = 0;
    U1Buf_RX=U1RXREG;
    //putcharUART2(U1Buf_RX);
   }

我希望我的汇编语言例程处理Uart 1

我猜我会找到一个类似的处理程序U2RXInterrupt(void)

您只能为给定的中断定义一个子例程。无论ISR是通过C代码还是汇编程序定义的,它在应用程序中必须是唯一的。

所以如果你想使用你的汇编器ISR,你必须从C代码中删除另一个,或者不将你的应用程序与带来它的对象或库链接。

相关内容

最新更新