Semihosting with OpenSTM32 and STM32F446RE Nucleo
arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -L”path/to/lib1” -L”path/to/lib2” -L”path/to/lib3” -L”path/to/lib4” -specs=nano.specs -specs=rdimon.specs -lc -lrdimon -T”path/to/myproject\LinkerScript.ld” -Wl,-Map=output.map -Wl, -gc-sections -fno-exceptions -fno-rtti -o “gateway.elf” @”objects.list” -llib1 -llib2 -llib3 -llib4
I deleted library folder paths and name because I shouldn’t publish those names. If I put syscalls.c on build path I get this:
src/syscalls.o: In function `initialise_monitor_handles’:
D:.../src/syscalls.c:72: multiple definition of `initialise_monitor_handles’
c:/ac6/systemworkbench/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.7.0.201602121829/tools/compiler/bin/../lib/gcc/arm-none-eabi/5.2.1/../../../../arm-none-eabi/lib/armv7e-m/fpu\librdimon_nano.a(rdimon-syscalls.o):syscalls.c:(.text.initialise_monitor_handles+0x0): first defined here
and then repeated for every function in syscalls.c, followed by undefined reference to `initialise_monitor_handles()’ in main.cpp