We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.