I\'m new to the field of microcontrollers. I need to port an IDE which is compiling programs for AVR microcontrollers to compile programs for ARM microcontrollers. I have ju
This happens when compiling a file with arm-none-eabi-gcc
in one machine/architecture to load it in an ARM target machine. Most probably you are not making use of semihosting, you want to retarget.
ARM® Compiler toolchain Version 4.1 indicates:
Semihosting is a mechanism that enables code running on an ARM target to communicate and use the Input/Output facilities on a host computer that is running a debugger.
From the toolchain's readme.txt (under folder .../gcc-arm-none-eabi-VERSION/share/doc/gcc-arm-none-eabi
):
** non-semihosting/retarget
If you are using retarget, linking like: $ arm-none-eabi-gcc --specs=nosys.specs $(OTHER_LINK_OPTIONS)
For me --specs=nosys.specs
was enough ;)
Use --specs=nosys.specs
:
arm-none-eabi-gcc --specs=nosys.specs $(OTHER_LINK_OPTIONS)
Reference:
I had the same problem. The solution was as follows:
-ffreestanding -flto
into compiler call line. -flto -ffreestanding -nostdlib
into linker call line.