M4F FPU HARD BESL

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

cross mob
MaPi_3451606
Level 1
Level 1

Hi, I'm having the following problem when I enabled hard FPU on an M4F, apparently compilations of the libraries of the BESL folder for M4F are missing:

Making snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: error: build/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO/binary/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf uses VFP register arguments, ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(wps_enrollee.o) does not

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(wps_enrollee.o)

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: error: build/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO/binary/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf uses VFP register arguments, ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(wps_registrar.o) does not

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(wps_registrar.o)

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: error: build/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO/binary/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf uses VFP register arguments, ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(wps_common.o) does not

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(wps_common.o)

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: error: build/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO/binary/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf uses VFP register arguments, ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(nn.o) does not

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(nn.o)

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: error: build/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO/binary/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf uses VFP register arguments, ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(supplicant.o) does not

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(supplicant.o)

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: error: build/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO/binary/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf uses VFP register arguments, ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(aes-ctr-ccm.o) does not

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(aes-ctr-ccm.o)

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: error: build/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO/binary/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf uses VFP register arguments, ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(80211.o) does not

/home/marcelo/Documents/WICED-Studio-6.2/43xxx_Wi-Fi/tools/ARM_GNU/Linux64/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file ././WICED/security/BESL/BESL_generic.ARM_CM4.release.a(80211.o)

collect2: error: ld returned 1 exit status

make[1]: *** [build/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO/binary/snip.tcp_client_secure-EMW3166-FreeRTOS-LwIP-SDIO.elf] Error 1

make: *** [main_app] Error 2

wiced_toolchain_ARM_GNU.mk:

ifeq ($(HOST_ARCH),ARM_CM4)

CPU_CFLAGS     := -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16

CPU_CXXFLAGS   := -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16

CPU_ASMFLAGS   := -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16

CPU_LDFLAGS    := -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,-A,thumb -Wl,-z,max-page-size=0x10 -Wl,-z,common-page-size=0x10

endif

Thanks!

0 Likes
1 Reply
RaktimR_11
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

I think you will find this How to use HW FPU on STM32F4xx? to be quiet useful. I have already raised a feature request for the ThreadX FPU support and will follow up the same for FreeRTOS based implementation. Are you enabling the hardware FPU support before executing the instructions?

0 Likes