cancel
Showing results for 
Search instead for 
Did you mean: 

WICED Smart Bluetooth

Anonymous
Not applicable

Hi All,

I am trying to change compiler options in Eclipse and was wondering how to do this? I am hoping to add -mfloat-abi=soft.

Thank You,

George

0 Likes
Reply
1 Solution
StBa_721356
Contributor

in your makefile.mk file add the following line:

C_FLAGS += -mfloat-abi=soft

View solution in original post

11 Replies
StBa_721356
Contributor

in your makefile.mk file add the following line:

C_FLAGS += -mfloat-abi=soft

View solution in original post

Anonymous
Not applicable

Still getting a "undefined reference to `__aeabi_i2f'"...

Any suggestions on why?

0 Likes
Reply
Anonymous
Not applicable

I added the line to the project makefile. It doesn't seem like it is including it in the make/gcc command because if I change it to something wrong it doesn't give me a makefile error.

0 Likes
Reply
StBa_721356
Contributor

Well, I tested the C_FLAGS issue myself with the ample project hello_sensor from the WICED Smart SDK 2.1.1.

If I add the following bad compiler flags to makefile.mk within the folder hello_sensor

C_FLAGS += -xxxxxx

and do a build in Eclipse I get the following output:

arm-none-eabi-gcc: error: language xxxxx not recognized

arm-none-eabi-gcc: error: language xxxxx not recognized

arm-none-eabi-gcc: error: language xxxxx not recognizedarm-none-eabi-gcc: error: language xxxxx not recognized

arm-none-eabi-gcc: error: language xxxxx not recognized

arm-none-eabi-gcc: error: language xxxxx not recognized

make[1]: *** [../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/sparinit.o] Error 1

make[1]: *** Waiting for unfinished jobs....

make[1]: *** [../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_setup.o] Error 1

make[1]: *** [../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.o] Error 1

make: *** [hello_sensor-BCM920736TAG_Q32] Error 2

So the C_FLAGS do make it to the make tool.

Please note that you have to make a clean build whenever you modify the makefile.mk.

To see what compiler flags are used you can add the following to the make parameters:

VERBOSE=1

0 Likes
Reply
Anonymous
Not applicable

This is what I am getting out after adding the:

C_FLAGS += -mfloat-abi=soft

Any thoughts on why it isn't compiling?

21:39:19 **** Build of configuration Release for project WICED-Smart-SDK ****

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/make Box-BCM920736TAG_Q32 download VERBOSE=1

ADK parameters:

GCC_TOOL_DIR="../../Tools/ARM_GNU/bin/OSX/"

GCC_FLAGS="-isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed"

TC="wiced"

DIR="../../Apps/Box"

BLD="A_20736A1"

TOOLSBIN="../../Tools/common/OSX/"

BASE_IN="rom"

SPAR_IN="ram"

BIN_OUT_DIR="../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release"

CGS_LIST="../../Platforms/BCM920736TAG_Q32/BCM20736A1.cgs"

CONFIG_DEFINITION="ConfigDef20732_ab.hdf"

PLATFORM_CGS_PATH="../../Platforms/BCM920736TAG_Q32/BCM20736A1.cgs"

APP_PATCH_DIR=""

PLATFORM_NV="EEPROM"

DEBUG=""

"Tools/common/OSX/make" -C Wiced-Smart/spar   -j4  cgs

../../Tools/common/OSX/perl ../getChipNameLen.pl A_20736A1

../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 3,4,5,6,7

../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 8,9

../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 1

../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -d_ -f 3-

../../Tools/common/OSX/perl -nle 'printf( "0x%08X", hex($1) )  if /^[[:space:]]+Execution[[:space:]]Region[[:space:]]first_free_section_in_SRAM[[:space:]].*Base:[[:space:]]+(0x[[:alnum:]]+)/'                                   ../tier2/brcm/mandatory/bld/20736/patch.lst

../../Tools/common/OSX/perl -nle 'printf( "0x%08X", (0x00200000 + 0x0000F000 - 256 - hex($1)) )  if /^[[:space:]]+Execution[[:space:]]Region[[:space:]]first_free_section_in_SRAM[[:space:]].*Base:[[:space:]]+(0x[[:alnum:]]+)/' ../tier2/brcm/mandatory/bld/20736/patch.lst

../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/box.o: In function `PID_Logic':

../../Tools/common/OSX/echo ""

../../Tools/common/OSX/echo ""

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/Box/box.c:925: undefined reference to `__aeabi_i2f'

../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-gcc -isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed -E -x c -P -DIRAM_BEGIN=0x00204F70 -DIRAM_LEN=0x00009F90 -DIROM_BEGIN= -DIROM_LEN= -I ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/ -o ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_ram_proc.ld gcc/spar_ram.ld

../../Tools/common/OSX/echo "Linking target ELF"

Linking target ELF

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/Box/box.c:925: undefined reference to `__aeabi_fmul'

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/Box/box.c:925: undefined reference to `__aeabi_f2iz'

../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-ld  --just-symbols=../tier2/brcm/mandatory/bld/20736/patch.elf ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_setup.o ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/box.o ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/sc620_ledcontroller_driver.o ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/mma54XX_acceleometer_driver.o ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/bq24295_battery_charger.o ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/sparinit.o ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/lib_installer.o -nostartfiles -nodefaultlibs -EL --cref --gc-sections  -T ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_ram_proc.ld -Map ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/A_20736A1-Box-rom-ram-spar.list -O2 --entry=Box_spar_crt_setup -z muldefs -nostdlib --start-group  --end-group -o ../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/A_20736A1-Box-rom-ram-spar.elf

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/Box/box.c:929: undefined reference to `__aeabi_i2f'

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/Box/box.c:929: undefined reference to `__aeabi_fmul'

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/Box/box.c:929: undefined reference to `__aeabi_f2iz'

make[1]: *** [../../build/Box-BCM920736TAG_Q32-rom-ram-Wiced-release/A_20736A1-Box-rom-ram-spar.elf] Error 1

make: *** [Box-BCM920736TAG_Q32] Error 2

21:39:19 Build Finished (took 284ms)

0 Likes
Reply
StBa_721356
Contributor

Strange. Looks like the C_FLAGS do not make it to your compiler.

If I compile the hello_sensor.c with the additional C_FLAGS in the makefile.mk I do get the following output:

07:55:22 **** Build of configuration Release for project WICED-Smart-SDK **** /Users/stefan/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/make hello_sensor-BCM920736TAG_Q32 build VERBOSE=1 ADK parameters: GCC_TOOL_DIR="../../Tools/ARM_GNU/bin/OSX/" GCC_FLAGS="-isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed" TC="wiced" DIR="../../Apps/hello_sensor" BLD="A_20736A1" TOOLSBIN="../../Tools/common/OSX/" BASE_IN="rom" SPAR_IN="ram" BIN_OUT_DIR="../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release" CGS_LIST="../../Platforms/BCM920736TAG_Q32/BCM20736A1.cgs" CONFIG_DEFINITION="ConfigDef20732_ab.hdf" PLATFORM_CGS_PATH="../../Platforms/BCM920736TAG_Q32/BCM20736A1.cgs" APP_PATCH_DIR="" PLATFORM_NV="EEPROM" DEBUG="" "Tools/common/OSX/make" -C Wiced-Smart/spar   -j4  cgs ../../Tools/common/OSX/perl ../getChipNameLen.pl A_20736A1 ../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 3,4,5,6,7 ../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 8,9 ../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 1 ../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -d_ -f 3- Compiling hello_sensor.c ../../Tools/common/OSX/mkdir -p ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release ../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-gcc -isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed -mfloat-abi=soft -DBCM20732 -DBB_20732A1 -DGPIO_NUMBER_OF_PINS=40 -DGPIO_MAX_PINS_PER_PORT=16 -DGPIO_NUMBER_OF_PORTS=3 -DNUM_SPIFFY_BLOCKS=2 -DDNUM_PATCH_ENTRIES=64 -DOVERLAY_SUPPORT -DCONFIG_IN_NVRAM -DASIC_BD_2045 -DSERIAL_FLASH -DBLE_LRK_LIST_SIZE=4 -DBLEAPP -funsigned-char -fshort-wchar -c -DCOMPILER_ARM -mlittle-endian -mcpu=cortex-m3 -mthumb -Os -g -Wa,-adhln -ffreestanding -DSPAR_CRT_SETUP=hello_sensor_spar_crt_setup -DSPAR_APP_SETUP=application_setup -D__TARGET_CPU_CORTEX_M3 -D__ARMCC_VERSION=220438 -I../../Apps/hello_sensor -I. -I../inc -I../cfa -I../bsp/inc -I../bleapp -I../bleapp/app -I../bleapp/utils -I../misc -I../../include -I../rtos/threadx -I../rtos/threadx/cm3 -I../bleapp/lestack/att -I../bleapp/lestack/l2cap -I../bleapp/lestack/blecm -I../bleapp/lestack/gatt -I../bleapp/lestack/profile -I../bleapp/lestack/smp -I../bleapp/lestack/ap -I. -Icommon -I../../Apps/hello_sensor -I../tier2/brcm/mandatory/bld/20736/.. -I../tier2/patch/inc -I../tier2/brcm/libraries/inc -I../../include/ -I../../include/Platforms/BCM920736TAG_Q32/ -I../../include/Drivers/ -I../../include/Drivers/20736  -o ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.o ../../Apps/hello_sensor/hello_sensor.c > ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.s ../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-gcc -isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed -mfloat-abi=soft -DBCM20732 -DBB_20732A1 -DGPIO_NUMBER_OF_PINS=40 -DGPIO_MAX_PINS_PER_PORT=16 -DGPIO_NUMBER_OF_PORTS=3 -DNUM_SPIFFY_BLOCKS=2 -DDNUM_PATCH_ENTRIES=64 -DOVERLAY_SUPPORT -DCONFIG_IN_NVRAM -DASIC_BD_2045 -DSERIAL_FLASH -DBLE_LRK_LIST_SIZE=4 -DBLEAPP -funsigned-char -fshort-wchar -c -DCOMPILER_ARM -mlittle-endian -mcpu=cortex-m3 -mthumb -Os -g -Wa,-adhln -ffreestanding -DSPAR_CRT_SETUP=hello_sensor_spar_crt_setup -DSPAR_APP_SETUP=application_setup -D__TARGET_CPU_CORTEX_M3 -D__ARMCC_VERSION=220438 -I../../Apps/hello_sensor -I. -I../inc -I../cfa -I../bsp/inc -I../bleapp -I../bleapp/app -I../bleapp/utils -I../misc -I../../include -I../rtos/threadx -I../rtos/threadx/cm3 -I../bleapp/lestack/att -I../bleapp/lestack/l2cap -I../bleapp/lestack/blecm -I../bleapp/lestack/gatt -I../bleapp/lestack/profile -I../bleapp/lestack/smp -I../bleapp/lestack/ap -I. -Icommon -I../../Apps/hello_sensor -I../tier2/brcm/mandatory/bld/20736/.. -I../tier2/patch/inc -I../tier2/brcm/libraries/inc -I../../include/ -I../../include/Platforms/BCM920736TAG_Q32/ -I../../include/Drivers/ -I../../include/Drivers/20736  -MM -MP -MF ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.d ../../Apps/hello_sensor/hello_sensor.c ../../Tools/common/OSX/echo   > ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_ram_overlays.ld ../../Tools/common/OSX/perl -nle 'printf( "0x%08X", hex($1) )  if /^[[:space:]]+Execution[[:space:]]Region[[:space:]]first_free_section_in_SRAM[[:space:]].*Base:[[:space:]]+(0x[[:alnum:]]+)/'                                   ../tier2/brcm/mandatory/bld/20736/patch.lst ../../Tools/common/OSX/perl -nle 'printf( "0x%08X", (0x00200000 + 0x0000F000 - 256 - hex($1)) )  if /^[[:space:]]+Execution[[:space:]]Region[[:space:]]first_free_section_in_SRAM[[:space:]].*Base:[[:space:]]+(0x[[:alnum:]]+)/' ../tier2/brcm/mandatory/bld/20736/patch.lst ../../Tools/common/OSX/echo "" ../../Tools/common/OSX/echo "" ../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-gcc -isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed -E -x c -P -DIRAM_BEGIN=0x00204F70 -DIRAM_LEN=0x00009F90 -DIROM_BEGIN= -DIROM_LEN= -I ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/ -o ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_ram_proc.ld gcc/spar_ram.ld

So the -mfloat-abi=soft does make it to GCC in my case.

Can you please try it as well with the standard hello_sensor project?

StBa_721356
Contributor

Btw: Have a look at the following thread: Floating-Point Arithmetic

0 Likes
Reply
Anonymous
Not applicable

Ya, I have. It uses a third-party library which seams more trouble-prone to me but open to suggestions on this...

0 Likes
Reply
Anonymous
Not applicable

I was able to get hello sensor to compile with the soft-float flag enabled AND disabled (simply taking it out, so maybe it is enabled by default?). I was able to do this after adding a float data type and confirming a variety of the float operators work. I then added the failing piece of code from my custom project to hello_sensor. This is where the issue lays:

The lines (bolded) where the local floats are multiplied by the global integers caused the issue. When I brought the globally declared integers into PID_Logic() it all worked--again, with or without the 'C_FLAGS += -mfloat-abi=soft' line in the make file.

//PID code by:http://coder-tronics.com/pid-tutorial-c-code-example-pt2/

  int d_Temp = 0;             // This stores the old ADC value

  int i_Temp = 0;             // This stores the accumulated Integral value

  int PWM_Temp = 166;         // Given an initial value, after that just stores the old value for calculation

void PID_Logic()

   {

    //Local variables for PID

     float Kp = 0.01;      // The value for Proportional gain

     float Ki = 0.01;      // The value for Integral gain

     float Kd = 0.0001;    // The value for Differential gain

   

    int Set_Point = 353;    // The ADC reference point we are aiming to regulate to

    int iMax = 100;         // Used to prevent integral wind-up

    int iMin = -100;        // Used to prevent integral wind-up

    int Err_Value;          // Holds the calculated Error value

    int P_Term;         // Holds the calculated Proportional value

    int I_Term;         // Holds the calculated Integral value

    int D_Term;         // Holds the calculated Differential value

    int new_ADC_value;      // Holds the new ADC value

    int PWM_Duty;           // Holds the new PWM value

    // More efficient to read this once and store as used 3 times

    new_ADC_value = 0;//read_ADC();

    Err_Value = (Set_Point - new_ADC_value);

    // This calculates Proportional value, Kp is multiplied with Err_Value and the result is assigned to P_Term

    P_Term = Kp * Err_Value;

    // Prepare Integral value, add the current error value to the integral value and assign the total to i_Temp

    i_Temp += Err_Value;

    // Prevents integral wind-up, limits i_Temp from getting too positive or negative

    if (i_Temp > iMax)

    {i_Temp = iMax;}

    else if (i_Temp < iMin)

    {i_Temp = iMin;}

    // Calculates the Integral value, Ki is multiplied with i_Temp and the result is assigned to I_Term

    I_Term = Ki * i_Temp;

    // Calculates Differential value, Kd is multiplied with (d_Temp minus new_ADC_value) and the result is assigned to D_Term

    // The new_ADC_value will become the old ADC value on the next function call, this is assigned to d_Temp so it can be used

    //D_Term = Kd * (d_Temp - Err_Value);

    d_Temp = Err_Value;

    /****** Now we have the P_Term, I_Term and D_Term *****/

    PWM_Duty = PWM_Temp - (P_Term + I_Term + D_Term);

    // PWM overflow prevention

    if (PWM_Duty > 300)

    {PWM_Duty = 300;}

    else if (PWM_Duty < 30)

    {PWM_Duty = 30;}

    // Adjusts the PWM duty cycle

    //adjust_PWM(PWM_Duty);

    // Assigns the current PWM duty cycle value to PWM_Temp

    PWM_Temp = PWM_Duty;

   }

This is what my makefile looked like:

#

# Copyright 2014, Broadcom Corporation

# All Rights Reserved.

#

# This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;

# the contents of this file may not be disclosed to third parties, copied

# or duplicated in any form, in whole or in part, without the prior

# written permission of Broadcom Corporation.

#

########################################################################

# Add Application sources here.

########################################################################

APP_SRC = hello_sensor.c

C_FLAGS += -mfloat-abi=soft

########################################################################

################ DO NOT MODIFY FILE BELOW THIS LINE ####################

########################################################################


These were the errors I was seeing:

12:02:55 **** Build of configuration Release for project WICED-Smart-SDK ****

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/make hello_sensor-BCM920736TAG_Q32 download VERBOSE=1

ADK parameters:

GCC_TOOL_DIR="../../Tools/ARM_GNU/bin/OSX/"

GCC_FLAGS="-isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed"

TC="wiced"

DIR="../../Apps/hello_sensor"

BLD="A_20736A1"

TOOLSBIN="../../Tools/common/OSX/"

BASE_IN="rom"

SPAR_IN="ram"

BIN_OUT_DIR="../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release"

CGS_LIST="../../Platforms/BCM920736TAG_Q32/BCM20736A1.cgs"

CONFIG_DEFINITION="ConfigDef20732_ab.hdf"

PLATFORM_CGS_PATH="../../Platforms/BCM920736TAG_Q32/BCM20736A1.cgs"

APP_PATCH_DIR=""

PLATFORM_NV="EEPROM"

DEBUG=""

"Tools/common/OSX/make" -C Wiced-Smart/spar   -j4  cgs

../../Tools/common/OSX/perl ../getChipNameLen.pl A_20736A1

../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 3,4,5,6,7

../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 8,9

../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -c 1

../../Tools/common/OSX/echo A_20736A1 | ../../Tools/common/OSX/cut -d_ -f 3-

Compiling hello_sensor.c

../../Tools/common/OSX/mkdir -p ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release

../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-gcc -isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed -mfloat-abi=soft -DBCM20732 -DBB_20732A1 -DGPIO_NUMBER_OF_PINS=40 -DGPIO_MAX_PINS_PER_PORT=16 -DGPIO_NUMBER_OF_PORTS=3 -DNUM_SPIFFY_BLOCKS=2 -DDNUM_PATCH_ENTRIES=64 -DOVERLAY_SUPPORT -DCONFIG_IN_NVRAM -DASIC_BD_2045 -DSERIAL_FLASH -DBLE_LRK_LIST_SIZE=4 -DBLEAPP -funsigned-char -fshort-wchar -c -DCOMPILER_ARM -mlittle-endian -mcpu=cortex-m3 -mthumb -Os -g -Wa,-adhln -ffreestanding -DSPAR_CRT_SETUP=hello_sensor_spar_crt_setup -DSPAR_APP_SETUP=application_setup -D__TARGET_CPU_CORTEX_M3 -D__ARMCC_VERSION=220438 -ffunction-sections -I../../Apps/hello_sensor -I. -I../inc -I../cfa -I../bsp/inc -I../bleapp -I../bleapp/app -I../bleapp/utils -I../misc -I../../include -I../rtos/threadx -I../rtos/threadx/cm3 -I../bleapp/lestack/att -I../bleapp/lestack/l2cap -I../bleapp/lestack/blecm -I../bleapp/lestack/gatt -I../bleapp/lestack/profile -I../bleapp/lestack/smp -I../bleapp/lestack/ap -I. -Icommon -I../../Apps/hello_sensor -I../tier2/brcm/mandatory/bld/20736/.. -I../tier2/patch/inc -I../tier2/brcm/libraries/inc -I../../include/ -I../../include/Platforms/BCM920736TAG_Q32/ -I../../include/Drivers/ -I../../include/Drivers/20736  -o ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.o ../../Apps/hello_sensor/hello_sensor.c > ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.s

../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-gcc -isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed -mfloat-abi=soft -DBCM20732 -DBB_20732A1 -DGPIO_NUMBER_OF_PINS=40 -DGPIO_MAX_PINS_PER_PORT=16 -DGPIO_NUMBER_OF_PORTS=3 -DNUM_SPIFFY_BLOCKS=2 -DDNUM_PATCH_ENTRIES=64 -DOVERLAY_SUPPORT -DCONFIG_IN_NVRAM -DASIC_BD_2045 -DSERIAL_FLASH -DBLE_LRK_LIST_SIZE=4 -DBLEAPP -funsigned-char -fshort-wchar -c -DCOMPILER_ARM -mlittle-endian -mcpu=cortex-m3 -mthumb -Os -g -Wa,-adhln -ffreestanding -DSPAR_CRT_SETUP=hello_sensor_spar_crt_setup -DSPAR_APP_SETUP=application_setup -D__TARGET_CPU_CORTEX_M3 -D__ARMCC_VERSION=220438 -ffunction-sections -I../../Apps/hello_sensor -I. -I../inc -I../cfa -I../bsp/inc -I../bleapp -I../bleapp/app -I../bleapp/utils -I../misc -I../../include -I../rtos/threadx -I../rtos/threadx/cm3 -I../bleapp/lestack/att -I../bleapp/lestack/l2cap -I../bleapp/lestack/blecm -I../bleapp/lestack/gatt -I../bleapp/lestack/profile -I../bleapp/lestack/smp -I../bleapp/lestack/ap -I. -Icommon -I../../Apps/hello_sensor -I../tier2/brcm/mandatory/bld/20736/.. -I../tier2/patch/inc -I../tier2/brcm/libraries/inc -I../../include/ -I../../include/Platforms/BCM920736TAG_Q32/ -I../../include/Drivers/ -I../../include/Drivers/20736  -MM -MP -MF ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.d ../../Apps/hello_sensor/hello_sensor.c

../../Tools/common/OSX/echo   > ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_ram_overlays.ld

../../Tools/common/OSX/perl -nle 'printf( "0x%08X", hex($1) )  if /^[[:space:]]+Execution[[:space:]]Region[[:space:]]first_free_section_in_SRAM[[:space:]].*Base:[[:space:]]+(0x[[:alnum:]]+)/'                                   ../tier2/brcm/mandatory/bld/20736/patch.lst

../../Tools/common/OSX/perl -nle 'printf( "0x%08X", (0x00200000 + 0x0000F000 - 256 - hex($1)) )  if /^[[:space:]]+Execution[[:space:]]Region[[:space:]]first_free_section_in_SRAM[[:space:]].*Base:[[:space:]]+(0x[[:alnum:]]+)/' ../tier2/brcm/mandatory/bld/20736/patch.lst

../../Tools/common/OSX/echo ""

../../Tools/common/OSX/echo ""

../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-gcc -isystem ../../Tools/ARM_GNU/include -isystem ../../Tools/ARM_GNU/lib/include -isystem ../../Tools/ARM_GNU/lib/include-fixed -E -x c -P -DIRAM_BEGIN=0x00204F70 -DIRAM_LEN=0x00009F90 -DIROM_BEGIN= -DIROM_LEN= -I ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/ -o ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_ram_proc.ld gcc/spar_ram.ld

../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.o: In function `PID_Logic':

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/hello_sensor/hello_sensor.c:789: undefined reference to `__aeabi_i2f'

../../Tools/common/OSX/echo "Linking target ELF"

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/hello_sensor/hello_sensor.c:789: undefined reference to `__aeabi_fmul'

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/hello_sensor/hello_sensor.c:789: undefined reference to `__aeabi_f2iz'

Linking target ELF

../../Tools/ARM_GNU/bin/OSX/arm-none-eabi-ld  --just-symbols=../tier2/brcm/mandatory/bld/20736/patch.elf ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_setup.o ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/hello_sensor.o ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/sparinit.o ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/lib_installer.o -nostartfiles -nodefaultlibs -EL --cref --gc-sections  -T ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/spar_ram_proc.ld -Map ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/A_20736A1-hello_sensor-rom-ram-spar.list -O2 --entry=hello_sensor_spar_crt_setup -z muldefs -nostdlib --start-group  --end-group -o ../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/A_20736A1-hello_sensor-rom-ram-spar.elf

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/hello_sensor/hello_sensor.c:793: undefined reference to `__aeabi_i2f'

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/hello_sensor/hello_sensor.c:793: undefined reference to `__aeabi_fmul'

/Users/gmelcer/Documents/WICED/WICED-Smart-SDK-2.1.1/WICED-Smart-SDK/Wiced-Smart/spar/../../Apps/hello_sensor/hello_sensor.c:793: undefined reference to `__aeabi_f2iz'

make[1]: *** [../../build/hello_sensor-BCM920736TAG_Q32-rom-ram-Wiced-release/A_20736A1-hello_sensor-rom-ram-spar.elf] Error 1

make: *** [hello_sensor-BCM920736TAG_Q32] Error 2

12:02:56 Build Finished (took 1s.245ms)

Does anyone know why this is?

I have a work around so it isn't a blocking issue but want to know the root-cause.

0 Likes
Reply
Anonymous
Not applicable

Hi gmelcer,

what's your work around?

Can you please share?

thanks.

0 Likes
Reply
Anonymous
Not applicable

Hi Roger,

I run a small product design firm called BoxUnfolded (www.boxunfolded.com) so our work changes. One of the more recent projects we did was GoKey which you can check out here:

indiegogo.com/projects/gokey-charger-cable-locator-memory-all-on-your-key-ring

If you scroll down on the updates section you can see pictures of some of the work we did. We handle hardware design, firmware, and app in-house. We partner for other aspects of the design.

Best,

George