libalgobsec.a uses VFP register arguments, laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO.elf does not

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

cross mob
ShSh_4766316
Level 1
Level 1

Hello,

I'm following the Sterling-EWB Development Kit - Software guide. https://connectivity-staging.s3.us-east-2.amazonaws.com/2019-07/CS-GUIDE-EWB_DevBd-SW%20v1_0_0.pdf

I tried to build the section 5 Sterling-EWB Sensor Demo but getting the following errors. So does the libalgobsec.a need to be built with softfp?

Making laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO.elf

c:/users/irtsshre/documents/wiced-studio-6.4/43xxx_wi-fi/tools/arm_gnu/win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: error: ./apps/laird/demo/sensor/libalgobsec.a(bsec_interface.o) uses VFP register arguments, build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/binary/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO.elf does not

c:/users/irtsshre/documents/wiced-studio-6.4/43xxx_wi-fi/tools/arm_gnu/win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file ./apps/laird/demo/sensor/libalgobsec.a(bsec_interface.o)

c:/users/irtsshre/documents/wiced-studio-6.4/43xxx_wi-fi/tools/arm_gnu/win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: error: ./apps/laird/demo/sensor/libalgobsec.a(bsec_codegen_do_steps.o) uses VFP register arguments, build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/binary/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO.elf does not

c:/users/irtsshre/documents/wiced-studio-6.4/43xxx_wi-fi/tools/arm_gnu/win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file ./apps/laird/demo/sensor/libalgobsec.a(bsec_codegen_do_steps.o)

c:/users/irtsshre/documents/wiced-studio-6.4/43xxx_wi-fi/tools/arm_gnu/win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: error: ./apps/laird/demo/sensor/libalgobsec.a(bsec_codegen_get_configuration.o) uses VFP register arguments, build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/binary/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO.elf does not

c:/users/irtsshre/documents/wiced-studio-6.4/43xxx_wi-fi/tools/arm_gnu/win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file ./apps/laird/demo/sensor/libalgobsec.a(bsec_codegen_get_configuration.o)

c:/users/irtsshre/documents/wiced-studio-6.4/43xxx_wi-fi/tools/arm_gnu/win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: error: ./apps/laird/demo/sensor/libalgobsec.a(bsec_codegen_get_state.o) uses VFP register arguments, build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/binary/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO.elf does not

.

.

.

. Shaun- Skipping similar erros to reduce the post size.

build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/libraries/Sterling_Wifi_BLE_Demo.a(wifi_config_profile.o): In function `wifi_scan_result_handler':

C:\Users\irtsshre\Documents\WICED-Studio-6.4\43xxx_Wi-Fi/apps/laird/demo/ble/profiles/wifi_config_profile.c:224: undefined reference to `WPRINT_BT_APP_INFO'

C:\Users\irtsshre\Documents\WICED-Studio-6.4\43xxx_Wi-Fi/apps/laird/demo/ble/profiles/wifi_config_profile.c:239: undefined reference to `WPRINT_BT_APP_INFO'

build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/libraries/Sterling_Wifi_BLE_Demo.a(wifi_config_profile.o): In function `wifi_config_confirmation_handler':

C:\Users\irtsshre\Documents\WICED-Studio-6.4\43xxx_Wi-Fi/apps/laird/demo/ble/profiles/wifi_config_profile.c:184: undefined reference to `WPRINT_BT_APP_INFO'

C:\Users\irtsshre\Documents\WICED-Studio-6.4\43xxx_Wi-Fi/apps/laird/demo/ble/profiles/wifi_config_profile.c:189: undefined reference to `WPRINT_BT_APP_INFO'

build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/libraries/Sterling_Wifi_BLE_Demo.a(wifi_config_profile.o): In function `wifi_config_send_message':

C:\Users\irtsshre\Documents\WICED-Studio-6.4\43xxx_Wi-Fi/apps/laird/demo/ble/profiles/wifi_config_profile.c:144: undefined reference to `WPRINT_BT_APP_INFO'

build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/libraries/Sterling_Wifi_BLE_Demo.a(wifi_config_profile.o):C:\Users\irtsshre\Documents\WICED-Studio-6.4\43xxx_Wi-Fi/apps/laird/demo/ble/profiles/wifi_config_profile.c:262: more undefined references to `WPRINT_BT_APP_INFO' follow

collect2.exe: error: ld returned 1 exit status

make.exe[1]: *** [build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/binary/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO.elf] Error 1

tools/makefiles/wiced_elf.mk:315: recipe for target 'build/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO/binary/laird.demo-LAIRD_EWB-ThreadX-NetX-SDIO.elf' failed

Makefile:351: recipe for target 'main_app' failed

make: *** [main_app] Error 2

19:57:49 Build Finished (took 4m:20s.41ms)

0 Likes
1 Solution
ShSh_4766316
Level 1
Level 1

Solution:

CS-GUIDE-EWB_DevBd-SW v1_0_0.pdf, Section 5.2 Building and Downloading the Demo Step 3 is incorrect:

Source: https://github.com/LairdCP/ewb_wiced_demo/issues/2

The .a file libalgobsec.a needs to be built with softfp! The Cortex_M4F uses the hardfp.

Wrong statement.

  1. 3. Copy the two .h files and one .a file from

...\algo\bin\Normal_version\gcc\Cortex_M4F

Corrected:

  1. 3. Copy the two .h files and one .a file from

...\algo\normal_version\bin\gcc\Cortex_M4

Also get the error: Undefined 'WPRINT_BT_APP_INFO'

Solution:

Add the following lines in the apps\laird\demo\ble\profiles\wifi_config_profile.h

/* Bluetooth application tracing macro */

#ifndef WPRINT_BT_APP_INFO

extern wiced_mutex_t global_trace_mutex;

#define WPRINT_BT_APP_INFO(info)    { \

wiced_rtos_lock_mutex(&global_trace_mutex);     \

WPRINT_APP_INFO(info); \

wiced_rtos_unlock_mutex(&global_trace_mutex);   \

}

#endif

View solution in original post

0 Likes
3 Replies