Skip to main content
Visitor II
October 17, 2005
Question

MULTIPLE PUBLIC DEFINITIONS

  • October 17, 2005
  • 1 reply
  • 774 views
Posted on October 17, 2005 at 07:25

MULTIPLE PUBLIC DEFINITIONS

    This topic has been closed for replies.

    1 reply

    ezanen9Author
    Visitor II
    October 17, 2005
    Posted on October 17, 2005 at 07:25

    Hi,

    I am using the following code:

    // Timer3 IRQ: Executed each 10ms

    void T3TIMI_IRQHandler (void) __irq

    {

    GPIO_BitWrite(GPIO2, 15, ~GPIO_BitRead(GPIO2, 15)); /* causes error in this ISR*/

    TIM_FlagClear(TIM3, TIM_TO_IT);

    EIC->IPR = 1 << T3TIMI_IRQChannel;

    }

    And I receive the following error:

    Build target 'STR7 Eval Board RAM'

    assembling Startup.s...

    compiling Hello.c...

    compiling UART.c...

    compiling GPIO.c...

    linking...

    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

    SYMBOL: GPIO_Config?T

    MODULE: C:\Keil\ARM\LIB\ST\STR71x.LIB (gpio)

    DEFINED: .\RAM\GPIO.obj (GPIO)

    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

    SYMBOL: GPIO_BitWrite?T

    MODULE: C:\Keil\ARM\LIB\ST\STR71x.LIB (gpio)

    DEFINED: .\RAM\GPIO.obj (GPIO)

    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

    SYMBOL: GPIO_ByteWrite?T

    MODULE: C:\Keil\ARM\LIB\ST\STR71x.LIB (gpio)

    DEFINED: .\RAM\GPIO.obj (GPIO)

    *** WARNING L23: UNRESOLVED EXTERNAL SYMBOLS

    Program Size: data=2074 const=0 code=242

    Target not created

    If I put the:

    GPIO_BitWrite(GPIO2, 15, ~GPIO_BitRead(GPIO2, 15));

    in the main function everything works just fine. If I put it in the ISR I get the above error. Why doesn't it work in an interrupt service routine?

    regards,

    Erik