cancel
Showing results for 
Search instead for 
Did you mean: 

MULTIPLE PUBLIC DEFINITIONS

ezanen9
Associate II
Posted on October 17, 2005 at 07:25

MULTIPLE PUBLIC DEFINITIONS

1 REPLY 1
ezanen9
Associate II
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