Hello, guys, I am now building my application for a Cortex-M0plus core, and when I tried to link the object files with the standard C library using the following command,
$ armlink --cpu=Cortex-M0plus --fpu=none --diag_suppress=6318,6314,9931 --info totals,sizes,unused --xref --symbols --map --list spritzer_haps_spinlock_test_m0p.map -s --info veneers --scatter ~/src/SSP/spritzer/bsp/spritzer_haps/m0p.sct --emit_debug_overlay_relocs --emit_debug_overlay_section --entry Reset_Handler --libpath C:/Keil/ARM/ARMCC/lib m0p_sample_task1.o att_init.o m0p_kernel_dep.o m0p_kernel_cfg.o m0p_retarget.o m0p_crt0.o libkerneldbg.alf -o spritzer_haps_spinlock_test_m0p.axf
the linker complains that
Error: L6218E: Undefined symbol _fp_init (referred from libinit2.o).
according to the following page,
ARM Information Center
_fp_init is implemented and provide by the C library, so why armlink complains that _fp_init is not defined???
I suspect that the problem is due to specifying "--fpu=none" on the link line. This means (perhaps confusingly) means no floating support at all. That is no support for floating point operations - not even via libraries. Which leads to the copy of the C librarypulled in won't not having a copy of _fp_init().
Did you really want "none"? Or, do you really need "SoftVFP"?