Hello, I'm new in this environment and I found a problem. I'm using uVision 5.33: I made a empty project, and in the management I inserted CMSIS Core, RTOS2 (API) Keil RTX5, STM32Cube HAL, STM32CubeMX. I didn't write nothing, I compiled the program without modification, and three errors appeared:
- Error: L6200E: Symbol SysTick_Handler multiply defined (by irq_cm0.o and stm32f0xx_it.o)
- Error: L6200E: Symbol PendSV_Handler multiply defined (by irq_cm0.o and stm32f0xx_it.o)
- Error: L6200E: Symbol SVC_Handler multiply defined (by irq_cm0.o and stm32f0xx_it.o)
Can someone help me?
Thanks
This really is a horrible abuse of the English language; ARM - a Cambridge company, no less - should be ashamed of it!
When they say "multiply defined" they mean that there are multiple definitions of the symbols
The error messages tell you where those multiple definitions are:
Giuseppe said:irq_cm0.o and stm32f0xx_it.o
irq_cm0.o is the object file produced by compiling irq_cm0.c;
stm32f0xx_it.o is the object file produced by compiling stm32f0xx_it.c.
So you need to look at those two source files and decide which is the definition to keep, and which it the one to remove.
EDIT
Note that this is general C stuff - not specific to Keil or ARM.
Thank you for the answer. Yes, I know that if I remove one definition of them the program should be linked well, but I don't understand if it is normal that an autogenerated code produces two definitions of the same function. These definitions wasn't made by myself, I didn't do anything, simply I selected the modules that was necessary for the program and I compiled the autogenerated code. Is the modification of the autogenerated code normal in this environment?
What "auto generator" are you using?
It clearly shouldn't happen - because the result cannot build.
either you've just chosen an incompatible set of options, or you've missed some configuration setting.