Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

XMC™ Forum Discussions

KirkMSutherland
Level 1
First solution authored First reply posted First question asked
Level 1

When building a project I found that both the lwip and the FATFS implementations have conflicting symbols. Is there an easy way around this or am I going to have to meddle with the linker?

'Building target: ETHCAT_SSC_XMC48.elf'
./Dave/Generated/SYSTIMER/systimer.o: In function `SysTick_Handler':
'Invoking: ARM-GCC C Linker'
C:\Infineon\Tools\DAVE IDE\4.5.0.202105191637\eclipse\workspace\ETHCAT_SSC_XMC48\Debug/../Dave/Generated/SYSTIMER/systimer.c:319: multiple definition of `SysTick_Handler'
"C:/Infineon/Tools/DAVE IDE/4.5.0.202105191637/eclipse/ARM-GCC-49/bin/arm-none-eabi-gcc" -T"../linker_script.ld" -nostartfiles -Xlinker --gc-sections -specs=nosys.specs -Wl,-Map,"ETHCAT_SSC_XMC48.map" -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -mcpu=cortex-m4 -mthumb -g -gdwarf-2 -o "ETHCAT_SSC_XMC48.elf" "@objects.rsp" -lm
./Libraries/lwip/port/nosys/sys_arch.o:C:\Infineon\Tools\DAVE IDE\4.5.0.202105191637\eclipse\workspace\ETHCAT_SSC_XMC48\Debug/../Libraries/lwip/port/nosys/sys_arch.c:38: first defined here
makefile:82: recipe for target 'ETHCAT_SSC_XMC48.elf' failed
0 Likes
1 Solution
KirkMSutherland
Level 1
First solution authored First reply posted First question asked
Level 1

I don't think you understood the question. The lwip code for the ETH DAVE APP and the systimer code for the FATFS DAVE APP both use this symbol. I know there are multiple definitions, that's what the error says. I'm asking how I reconcile this without having to mess around with the generated code.

It looks like I can mess with lwip easier though, so I'll do that.

 

EDIT: Confirmed that it was in the DAVE APP itself in the generated code. I added an extra _lwip to the function names and it worked out fine, but I imagine if I regenerate the code I'll have to do it again. It would be nice if this were fixed on the DAVE APP level.

View solution in original post

0 Likes
2 Replies
ncbs
Moderator
Moderator 50 likes received 250 sign-ins 250 replies posted
Moderator

Hi @KirkMSutherland ,

It seems that you have multiple definitions of 'SysTick_Handler'. Take a look in your project to see where all 'SysTick_Handler' has been defined, and retain the definition in only one file.

To ensure none of the previous build files intervene with your current project, perform a clean operation once.

Regards,
Nikhil

0 Likes
KirkMSutherland
Level 1
First solution authored First reply posted First question asked
Level 1

I don't think you understood the question. The lwip code for the ETH DAVE APP and the systimer code for the FATFS DAVE APP both use this symbol. I know there are multiple definitions, that's what the error says. I'm asking how I reconcile this without having to mess around with the generated code.

It looks like I can mess with lwip easier though, so I'll do that.

 

EDIT: Confirmed that it was in the DAVE APP itself in the generated code. I added an extra _lwip to the function names and it worked out fine, but I imagine if I regenerate the code I'll have to do it again. It would be nice if this were fixed on the DAVE APP level.

0 Likes