- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- 3. Copy the two .h files and one .a file from
...\algo\bin\Normal_version\gcc\Cortex_M4F
Corrected:
- 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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm not particularly familiar with the LAIRD specific examples. But from the error log, I can confirm that yes, libalgobsec.a need to be built with softfp.
The pre-built libraries of WICED comes only in a softfp option. Hence, mixing softfp with a hardfp compiled library is not link compatible.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you! Yes, libalgobsec.a needs to be built with softfp, which led me to the solution above.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- 3. Copy the two .h files and one .a file from
...\algo\bin\Normal_version\gcc\Cortex_M4F
Corrected:
- 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