GCC libmDot for offline build
- This topic has 7 replies, 2 voices, and was last updated 8 years, 3 months ago by Mike Fiore.
-
AuthorPosts
-
August 25, 2016 at 8:38 am #14616Damian ChristieParticipant
Hi,
I’m trying to build the AT command firmware using the GCC toolchain in Eclipse. I’m getting a bunch of “undefined reference” errors, all concerning the mDot class, leading me to believe the library is not being read correctly. I’m using the latest libmDot library from the downloads page. If I change the name of the library under the linker settings in Eclipse I get an error saying the library is not found, so this makes me think the linker is finding the library just fine when I use the correct name. Any idea why it might not be reading the contents of the library???
Thanks.
August 25, 2016 at 8:52 am #14617Mike FioreBlockedDamian,
Are you using an IDE or the mbed offline SDK? Did you export from the online compiler?
Cheers,
Mike
August 25, 2016 at 9:39 am #14618Damian ChristieParticipantI’m using Eclipse CDT, basically following this tutorial, altered to suit the mDot. I exported from the mbed browser IDE and copied in the mbed-src folder and the libmDot library from the download page.
August 25, 2016 at 10:15 am #14619Mike FioreBlockedDamian,
What version of mbed-src and libmDot did you use?
Can you post compile output?
Cheers,
Mike
August 25, 2016 at 11:11 am #14620Damian ChristieParticipantHi Mike,
I’m pretty sure I used the latest version of mbed-src, downloaded from here. I used libmDot-1.0.8. My compile output is below.
Thanks.
17:10:25 **** Build of configuration Debug for project test02 **** make all Building file: ../system/src/stm32f4-hal/stm32f4xx_hal.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-bad-function-cast -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal.o" "../system/src/stm32f4-hal/stm32f4xx_hal.c" Finished building: ../system/src/stm32f4-hal/stm32f4xx_hal.c Building file: ../system/src/stm32f4-hal/stm32f4xx_hal_cortex.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-bad-function-cast -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal_cortex.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal_cortex.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal_cortex.o" "../system/src/stm32f4-hal/stm32f4xx_hal_cortex.c" Finished building: ../system/src/stm32f4-hal/stm32f4xx_hal_cortex.c Building file: ../system/src/stm32f4-hal/stm32f4xx_hal_dfsdm.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-bad-function-cast -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal_dfsdm.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal_dfsdm.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal_dfsdm.o" "../system/src/stm32f4-hal/stm32f4xx_hal_dfsdm.c" Finished building: ../system/src/stm32f4-hal/stm32f4xx_hal_dfsdm.c Building file: ../system/src/stm32f4-hal/stm32f4xx_hal_flash.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-bad-function-cast -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal_flash.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal_flash.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal_flash.o" "../system/src/stm32f4-hal/stm32f4xx_hal_flash.c" Finished building: ../system/src/stm32f4-hal/stm32f4xx_hal_flash.c Building file: ../system/src/stm32f4-hal/stm32f4xx_hal_gpio.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-bad-function-cast -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal_gpio.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal_gpio.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal_gpio.o" "../system/src/stm32f4-hal/stm32f4xx_hal_gpio.c" Finished building: ../system/src/stm32f4-hal/stm32f4xx_hal_gpio.c Building file: ../system/src/stm32f4-hal/stm32f4xx_hal_iwdg.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-bad-function-cast -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal_iwdg.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal_iwdg.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal_iwdg.o" "../system/src/stm32f4-hal/stm32f4xx_hal_iwdg.c" Finished building: ../system/src/stm32f4-hal/stm32f4xx_hal_iwdg.c Building file: ../system/src/stm32f4-hal/stm32f4xx_hal_pwr.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-bad-function-cast -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal_pwr.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal_pwr.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal_pwr.o" "../system/src/stm32f4-hal/stm32f4xx_hal_pwr.c" Finished building: ../system/src/stm32f4-hal/stm32f4xx_hal_pwr.c Building file: ../system/src/stm32f4-hal/stm32f4xx_hal_rcc.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-bad-function-cast -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal_rcc.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal_rcc.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal_rcc.o" "../system/src/stm32f4-hal/stm32f4xx_hal_rcc.c" Finished building: ../system/src/stm32f4-hal/stm32f4xx_hal_rcc.c Building file: ../system/src/newlib/_cxx.cpp Invoking: Cross ARM C++ Compiler arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../libmDot" -I"../" -I"../include" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -I"../mbed-rtos/rtos" -I"../mbed-rtos/rtx/TARGET_CORTEX_M" -I"../libmDot/MTS-Utils" -I"../mbed-src/api" -I"../mbed-src/targets/hal/TARGET_STM/TARGET_STM32F4XX" -I"../mbed-src/targets/cmsis/TARGET_STM/TARGET_STM32F4XX" -I"../mbed-src/hal" -std=gnu++11 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -MMD -MP -MF"system/src/newlib/_cxx.d" -MT"system/src/newlib/_cxx.o" -c -o "system/src/newlib/_cxx.o" "../system/src/newlib/_cxx.cpp" Finished building: ../system/src/newlib/_cxx.cpp Building file: ../system/src/newlib/_exit.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/newlib/_exit.d" -MT"system/src/newlib/_exit.o" -c -o "system/src/newlib/_exit.o" "../system/src/newlib/_exit.c" Finished building: ../system/src/newlib/_exit.c Building file: ../system/src/newlib/_sbrk.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/newlib/_sbrk.d" -MT"system/src/newlib/_sbrk.o" -c -o "system/src/newlib/_sbrk.o" "../system/src/newlib/_sbrk.c" Finished building: ../system/src/newlib/_sbrk.c Building file: ../system/src/newlib/_startup.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -DOS_INCLUDE_STARTUP_INIT_MULTIPLE_RAM_SECTIONS -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/newlib/_startup.d" -MT"system/src/newlib/_startup.d" -c -o "system/src/newlib/_startup.o" "../system/src/newlib/_startup.c" Finished building: ../system/src/newlib/_startup.c Building file: ../system/src/newlib/_syscalls.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/newlib/_syscalls.d" -MT"system/src/newlib/_syscalls.o" -c -o "system/src/newlib/_syscalls.o" "../system/src/newlib/_syscalls.c" Finished building: ../system/src/newlib/_syscalls.c Building file: ../system/src/newlib/assert.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/newlib/assert.d" -MT"system/src/newlib/assert.o" -c -o "system/src/newlib/assert.o" "../system/src/newlib/assert.c" Finished building: ../system/src/newlib/assert.c Building file: ../system/src/diag/Trace.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/diag/Trace.d" -MT"system/src/diag/Trace.o" -c -o "system/src/diag/Trace.o" "../system/src/diag/Trace.c" Finished building: ../system/src/diag/Trace.c Building file: ../system/src/diag/trace_impl.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/diag/trace_impl.d" -MT"system/src/diag/trace_impl.o" -c -o "system/src/diag/trace_impl.o" "../system/src/diag/trace_impl.c" Finished building: ../system/src/diag/trace_impl.c Building file: ../system/src/cortexm/_initialize_hardware.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/cortexm/_initialize_hardware.d" -MT"system/src/cortexm/_initialize_hardware.o" -c -o "system/src/cortexm/_initialize_hardware.o" "../system/src/cortexm/_initialize_hardware.c" Finished building: ../system/src/cortexm/_initialize_hardware.c Building file: ../system/src/cortexm/_reset_hardware.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/cortexm/_reset_hardware.d" -MT"system/src/cortexm/_reset_hardware.o" -c -o "system/src/cortexm/_reset_hardware.o" "../system/src/cortexm/_reset_hardware.c" Finished building: ../system/src/cortexm/_reset_hardware.c Building file: ../system/src/cortexm/exception_handlers.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/cortexm/exception_handlers.d" -MT"system/src/cortexm/exception_handlers.o" -c -o "system/src/cortexm/exception_handlers.o" "../system/src/cortexm/exception_handlers.c" Finished building: ../system/src/cortexm/exception_handlers.c Building file: ../system/src/cmsis/startup_stm32f411xe.S Invoking: Cross ARM GNU Assembler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -x assembler-with-cpp -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -MMD -MP -MF"system/src/cmsis/startup_stm32f411xe.d" -MT"system/src/cmsis/startup_stm32f411xe.o" -c -o "system/src/cmsis/startup_stm32f411xe.o" "../system/src/cmsis/startup_stm32f411xe.S" Finished building: ../system/src/cmsis/startup_stm32f411xe.S Building file: ../system/src/cmsis/system_stm32f4xx.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/cmsis/system_stm32f4xx.d" -MT"system/src/cmsis/system_stm32f4xx.o" -c -o "system/src/cmsis/system_stm32f4xx.o" "../system/src/cmsis/system_stm32f4xx.c" Finished building: ../system/src/cmsis/system_stm32f4xx.c Building file: ../src/Timer.cpp Invoking: Cross ARM C++ Compiler arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../libmDot" -I"../" -I"../include" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -I"../mbed-rtos/rtos" -I"../mbed-rtos/rtx/TARGET_CORTEX_M" -I"../libmDot/MTS-Utils" -I"../mbed-src/api" -I"../mbed-src/targets/hal/TARGET_STM/TARGET_STM32F4XX" -I"../mbed-src/targets/cmsis/TARGET_STM/TARGET_STM32F4XX" -I"../mbed-src/hal" -std=gnu++11 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -MMD -MP -MF"src/Timer.d" -MT"src/Timer.o" -c -o "src/Timer.o" "../src/Timer.cpp" Finished building: ../src/Timer.cpp Building file: ../src/_initialize_hardware.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"src/_initialize_hardware.d" -MT"src/_initialize_hardware.o" -c -o "src/_initialize_hardware.o" "../src/_initialize_hardware.c" ../src/_initialize_hardware.c: In function 'SystemClock_Config': ../src/_initialize_hardware.c:104:2: warning: #warning "Please check if the SystemClock_Config() settings match your board!" [-Wcpp] #warning "Please check if the SystemClock_Config() settings match your board!" ^ Finished building: ../src/_initialize_hardware.c Building file: ../src/_write.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"src/_write.d" -MT"src/_write.o" -c -o "src/_write.o" "../src/_write.c" Finished building: ../src/_write.c Building file: ../src/main.cpp Invoking: Cross ARM C++ Compiler arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../libmDot" -I"../" -I"../include" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -I"../mbed-rtos/rtos" -I"../mbed-rtos/rtx/TARGET_CORTEX_M" -I"../libmDot/MTS-Utils" -I"../mbed-src/api" -I"../mbed-src/targets/hal/TARGET_STM/TARGET_STM32F4XX" -I"../mbed-src/targets/cmsis/TARGET_STM/TARGET_STM32F4XX" -I"../mbed-src/hal" -std=gnu++11 -fabi-version=0 -fno-exceptions -fno-rtti -fno-use-cxa-atexit -fno-threadsafe-statics -MMD -MP -MF"src/main.d" -MT"src/main.o" -c -o "src/main.o" "../src/main.cpp" In file included from ../src/main.cpp:2:0: ../libmDot/mDot.h:25:38: warning: unused parameter 'args' [-Wunused-parameter] static void idle(void const* args) { ^ Finished building: ../src/main.cpp Building file: ../src/stm32f4xx_hal_msp.c Invoking: Cross ARM C Compiler arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DOS_USE_SEMIHOSTING -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F411xE -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../libmDot" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wno-missing-prototypes -Wno-missing-declarations -MMD -MP -MF"src/stm32f4xx_hal_msp.d" -MT"src/stm32f4xx_hal_msp.d" -c -o "src/stm32f4xx_hal_msp.o" "../src/stm32f4xx_hal_msp.c" Finished building: ../src/stm32f4xx_hal_msp.c Building target: test02.elf Invoking: Cross ARM C++ Linker arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -Wall -Wextra -g3 -T mem.ld -T libs.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L"../libmDot" -L"../ldscripts" -Wl,-Map,"test02.map" --specs=nano.specs -o "test02.elf" ./system/src/stm32f4-hal/stm32f4xx_hal.o ./system/src/stm32f4-hal/stm32f4xx_hal_cortex.o ./system/src/stm32f4-hal/stm32f4xx_hal_dfsdm.o ./system/src/stm32f4-hal/stm32f4xx_hal_flash.o ./system/src/stm32f4-hal/stm32f4xx_hal_gpio.o ./system/src/stm32f4-hal/stm32f4xx_hal_iwdg.o ./system/src/stm32f4-hal/stm32f4xx_hal_pwr.o ./system/src/stm32f4-hal/stm32f4xx_hal_rcc.o ./system/src/newlib/_cxx.o ./system/src/newlib/_exit.o ./system/src/newlib/_sbrk.o ./system/src/newlib/_startup.o ./system/src/newlib/_syscalls.o ./system/src/newlib/assert.o ./system/src/diag/Trace.o ./system/src/diag/trace_impl.o ./system/src/cortexm/_initialize_hardware.o ./system/src/cortexm/_reset_hardware.o ./system/src/cortexm/exception_handlers.o ./system/src/cmsis/startup_stm32f411xe.o ./system/src/cmsis/system_stm32f4xx.o ./src/Timer.o ./src/_initialize_hardware.o ./src/_write.o ./src/main.o ./src/stm32f4xx_hal_msp.o -lmDot-1.0.8-1-g7ae9ef7-GCC_ARM ./src/main.o: In function 'main': C:\Users\christda\workspace\test02\Debug/../src/main.cpp:24: undefined reference to 'mDot::getId[abi:cxx11]()' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:48: undefined reference to 'mDot::getReturnCodeString[abi:cxx11](long const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:52: undefined reference to 'mDot::setNetworkName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:53: undefined reference to 'mDot::getReturnCodeString[abi:cxx11](long const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:57: undefined reference to 'mDot::setNetworkPassphrase(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:58: undefined reference to 'mDot::getReturnCodeString[abi:cxx11](long const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:66: undefined reference to 'mDot::getReturnCodeString[abi:cxx11](long const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:72: undefined reference to 'mDot::getReturnCodeString[abi:cxx11](long const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:87: undefined reference to 'mDot::getReturnCodeString[abi:cxx11](long const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:89: undefined reference to 'osDelay' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:99: undefined reference to 'mDot::getReturnCodeString[abi:cxx11](long const&)' C:\Users\christda\workspace\test02\Debug/../src/main.cpp:105: undefined reference to 'osDelay' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::~LoRaMac()': LoRaMac.cpp:(.text._ZN7LoRaMacD2Ev+0xc): undefined reference to 'rtos::RtosTimer::~RtosTimer()' LoRaMac.cpp:(.text._ZN7LoRaMacD2Ev+0x14): undefined reference to 'rtos::RtosTimer::~RtosTimer()' LoRaMac.cpp:(.text._ZN7LoRaMacD2Ev+0x1c): undefined reference to 'rtos::RtosTimer::~RtosTimer()' LoRaMac.cpp:(.text._ZN7LoRaMacD2Ev+0x24): undefined reference to 'rtos::RtosTimer::~RtosTimer()' LoRaMac.cpp:(.text._ZN7LoRaMacD2Ev+0x2c): undefined reference to 'rtos::RtosTimer::~RtosTimer()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o):LoRaMac.cpp:(.text._ZN7LoRaMacD2Ev+0x34): more undefined references to 'rtos::RtosTimer::~RtosTimer()' follow ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::GetNextTxMs()': LoRaMac.cpp:(.text._ZN7LoRaMac11GetNextTxMsEv+0x10): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac11GetNextTxMsEv+0x9c): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac11GetNextTxMsEv+0xb6): undefined reference to 'mbed::Timer::read_ms()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::OnDutyCycleCentEventBottom()': LoRaMac.cpp:(.text._ZN7LoRaMac26OnDutyCycleCentEventBottomEv+0x8): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac26OnDutyCycleCentEventBottomEv+0x34): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::OnDutyCycleMillEventBottom()': LoRaMac.cpp:(.text._ZN7LoRaMac26OnDutyCycleMillEventBottomEv+0x8): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac26OnDutyCycleMillEventBottomEv+0x34): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::OnDutyCycleDeciEventBottom()': LoRaMac.cpp:(.text._ZN7LoRaMac26OnDutyCycleDeciEventBottomEv+0x8): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac26OnDutyCycleDeciEventBottomEv+0x34): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::OnDutyCycleVariEventBottom()': LoRaMac.cpp:(.text._ZN7LoRaMac26OnDutyCycleVariEventBottomEv+0x8): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac26OnDutyCycleVariEventBottomEv+0x34): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::ResetRadio()': LoRaMac.cpp:(.text._ZN7LoRaMac10ResetRadioEv+0xe): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac10ResetRadioEv+0x22): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac10ResetRadioEv+0x2a): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac10ResetRadioEv+0x32): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac10ResetRadioEv+0x3a): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac10ResetRadioEv+0x40): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o):LoRaMac.cpp:(.text._ZN7LoRaMac10ResetRadioEv+0x48): more undefined references to 'rtos::RtosTimer::stop()' follow ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::ResetRadio()': LoRaMac.cpp:(.text._ZN7LoRaMac10ResetRadioEv+0x92): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::FindNextChannel()': LoRaMac.cpp:(.text._ZN7LoRaMac15FindNextChannelEv+0x1ac): undefined reference to 'mbed::Timer::read_ms()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::Init()': LoRaMac.cpp:(.text._ZN7LoRaMac4InitEv+0xe): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac4InitEv+0xac): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::LoRaMac(SxRadio&, LoRaMacEvent*)': LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0xb6): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0xd4): undefined reference to 'mbed::Timer::Timer()' LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0xee): undefined reference to 'mbed::Timer::Timer()' LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0xfc): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0x10a): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0x118): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0x126): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0x134): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o):LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0x142): more undefined references to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' follow ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::LoRaMac(SxRadio&, LoRaMacEvent*)': LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0x2b2): undefined reference to 'mbed::Timer::start()' LoRaMac.cpp:(.text._ZN7LoRaMacC2ER7SxRadioP12LoRaMacEvent+0x2b8): undefined reference to 'mbed::Timer::start()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::InitNwkIds(unsigned long, unsigned long, unsigned char*, unsigned char*)': LoRaMac.cpp:(.text._ZN7LoRaMac10InitNwkIdsEmmPhS0_+0x18): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac10InitNwkIdsEmmPhS0_+0x4c): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::LinkCheckReq()': LoRaMac.cpp:(.text._ZN7LoRaMac12LinkCheckReqEv+0x1a): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac12LinkCheckReqEv+0x54): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::PrepareFrame(LoRaMac::TxChannel, LoRaMac::Header*, LoRaMac::UpFrameControl*, unsigned char*, unsigned char, void*, unsigned short)': LoRaMac.cpp:(.text._ZN7LoRaMac12PrepareFrameENS_9TxChannelEPNS_6HeaderEPNS_14UpFrameControlEPhhPvt+0x2c): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac12PrepareFrameENS_9TxChannelEPNS_6HeaderEPNS_14UpFrameControlEPhhPvt+0x368): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::UpdateDutyCycle(unsigned long, unsigned long)': LoRaMac.cpp:(.text._ZN7LoRaMac15UpdateDutyCycleEmm+0x12): undefined reference to 'mbed::Timer::start()' LoRaMac.cpp:(.text._ZN7LoRaMac15UpdateDutyCycleEmm+0x62): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac15UpdateDutyCycleEmm+0x8e): undefined reference to 'mbed::Timer::reset()' LoRaMac.cpp:(.text._ZN7LoRaMac15UpdateDutyCycleEmm+0xa8): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac15UpdateDutyCycleEmm+0x106): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac15UpdateDutyCycleEmm+0x1b0): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac15UpdateDutyCycleEmm+0x1bc): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac15UpdateDutyCycleEmm+0x1c8): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::SendFrameOnChannel(LoRaMac::TxChannel)': LoRaMac.cpp:(.text._ZN7LoRaMac18SendFrameOnChannelENS_9TxChannelE+0x1a): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac18SendFrameOnChannelENS_9TxChannelE+0x1ae): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::OnNbRepTimeoutTimerEventBottom() [clone .part.30]': LoRaMac.cpp:(.text._ZN7LoRaMac30OnNbRepTimeoutTimerEventBottomEv.part.30+0x134): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::SendOnChannel(LoRaMac::TxChannel, LoRaMac::Header*, LoRaMac::UpFrameControl*, unsigned char*, unsigned char, void*, unsigned short)': LoRaMac.cpp:(.text._ZN7LoRaMac13SendOnChannelENS_9TxChannelEPNS_6HeaderEPNS_14UpFrameControlEPhhPvt+0x22): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac13SendOnChannelENS_9TxChannelEPNS_6HeaderEPNS_14UpFrameControlEPhhPvt+0x40): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::Send(LoRaMac::Header*, unsigned char*, unsigned char, void*, unsigned short)': LoRaMac.cpp:(.text._ZN7LoRaMac4SendEPNS_6HeaderEPhhPvt+0x1c): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac4SendEPNS_6HeaderEPhhPvt+0x4c): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac4SendEPNS_6HeaderEPhhPvt+0x78): undefined reference to 'rtos::Mutex::unlock()' LoRaMac.cpp:(.text._ZN7LoRaMac4SendEPNS_6HeaderEPhhPvt+0xb8): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::JoinReq(unsigned char*, unsigned char*, unsigned char*)': LoRaMac.cpp:(.text._ZN7LoRaMac7JoinReqEPhS0_S0_+0x26): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac7JoinReqEPhS0_S0_+0xba): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac7JoinReqEPhS0_S0_+0x128): undefined reference to 'rtos::Mutex::unlock()' LoRaMac.cpp:(.text._ZN7LoRaMac7JoinReqEPhS0_S0_+0x158): undefined reference to 'mbed::Timer::read()' LoRaMac.cpp:(.text._ZN7LoRaMac7JoinReqEPhS0_S0_+0x17e): undefined reference to 'mbed::Timer::read()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::Wakeup()': LoRaMac.cpp:(.text._ZN7LoRaMac6WakeupEv+0x20): undefined reference to 'mbed::Timer::start()' LoRaMac.cpp:(.text._ZN7LoRaMac6WakeupEv+0x26): undefined reference to 'mbed::Timer::start()' LoRaMac.cpp:(.text._ZN7LoRaMac6WakeupEv+0x30): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac6WakeupEv+0x60): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6WakeupEv+0xa0): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6WakeupEv+0xea): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6WakeupEv+0xf8): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::TxDone()': LoRaMac.cpp:(.text._ZN7LoRaMac6TxDoneEv+0x18): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac6TxDoneEv+0x142): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6TxDoneEv+0x14e): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6TxDoneEv+0x1b8): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6TxDoneEv+0x136): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::OnRxWindow1TimerEventBottom()': LoRaMac.cpp:(.text._ZN7LoRaMac27OnRxWindow1TimerEventBottomEv+0xde): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o):LoRaMac.cpp:(.text._ZN7LoRaMac27OnRxWindow2TimerEventBottomEi+0xde): more undefined references to 'rtos::RtosTimer::start(unsigned long)' follow ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::OnRxWindow2TimerEventBottom(int)': LoRaMac.cpp:(.text._ZN7LoRaMac27OnRxWindow2TimerEventBottomEi+0x15e): undefined reference to 'mbed::Timer::read_ms()' LoRaMac.cpp:(.text._ZN7LoRaMac27OnRxWindow2TimerEventBottomEi+0x17a): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::TxTimeout()': LoRaMac.cpp:(.text._ZN7LoRaMac9TxTimeoutEv+0x20): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::RxTimeout()': LoRaMac.cpp:(.text._ZN7LoRaMac9RxTimeoutEv+0x20): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac9RxTimeoutEv+0x48): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::RxError()': LoRaMac.cpp:(.text._ZN7LoRaMac7RxErrorEv+0x14): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::Config(LoRaConfig&)': LoRaMac.cpp:(.text._ZN7LoRaMac6ConfigER10LoRaConfig+0x14): undefined reference to 'rtos::Mutex::lock(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6ConfigER10LoRaConfig+0x1b4): undefined reference to 'rtos::Mutex::unlock()' LoRaMac.cpp:(.text._ZN7LoRaMac6ConfigER10LoRaConfig+0x308): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::RxDone(unsigned char*, unsigned short, short, signed char)': LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x2e): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x2aa): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x59a): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x624): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x6aa): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x81c): undefined reference to 'rtos::RtosTimer::start(unsigned long)' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x848): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x882): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0x8f4): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0xca2): undefined reference to 'rtos::RtosTimer::stop()' LoRaMac.cpp:(.text._ZN7LoRaMac6RxDoneEPhtsa+0xe96): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(LoRaMac.o): In function 'LoRaMac::OnAckTimeoutTimerEventBottom()': LoRaMac.cpp:(.text._ZN7LoRaMac28OnAckTimeoutTimerEventBottomEv+0x132): undefined reference to 'rtos::RtosTimer::start(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(mDot.o): In function 'mDot::blinkActivityLed()': mDot.cpp:(.text._ZN4mDot16blinkActivityLedEv[_ZN4mDot16blinkActivityLedEv]+0x36): undefined reference to 'mbed_assert_internal' mDot.cpp:(.text._ZN4mDot16blinkActivityLedEv[_ZN4mDot16blinkActivityLedEv]+0x4c): undefined reference to 'mbed_assert_internal' mDot.cpp:(.text._ZN4mDot16blinkActivityLedEv[_ZN4mDot16blinkActivityLedEv]+0x6c): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(mDot.o): In function 'mDot::waitForLinkCheck()': mDot.cpp:(.text._ZN4mDot16waitForLinkCheckEv+0x8): undefined reference to 'mbed::Timer::Timer()' mDot.cpp:(.text._ZN4mDot16waitForLinkCheckEv+0xe): undefined reference to 'mbed::Timer::start()' mDot.cpp:(.text._ZN4mDot16waitForLinkCheckEv+0x24): undefined reference to 'mbed::Timer::read_ms()' mDot.cpp:(.text._ZN4mDot16waitForLinkCheckEv+0x30): undefined reference to 'osDelay' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(mDot.o): In function 'mDot::setActivityLedState(unsigned char const&)': mDot.cpp:(.text._ZN4mDot19setActivityLedStateERKh+0x20): undefined reference to 'mbed::Ticker::detach()' mDot.cpp:(.text._ZN4mDot19setActivityLedStateERKh+0x7c): undefined reference to 'mbed_assert_internal' mDot.cpp:(.text._ZN4mDot19setActivityLedStateERKh+0x92): undefined reference to 'mbed_assert_internal' mDot.cpp:(.text._ZN4mDot19setActivityLedStateERKh+0x72): undefined reference to 'mbed::Ticker::setup(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(mDot.o): In function 'mDot::mDot()': mDot.cpp:(.text._ZN4mDotC2Ev+0x4e): undefined reference to 'rtos::Thread::Thread(void (*)(void const*), void*, osPriority, unsigned long, unsigned char*)' mDot.cpp:(.text._ZN4mDotC2Ev+0x5e): undefined reference to 'mbed::TimerEvent::TimerEvent()' mDot.cpp:(.text._ZN4mDotC2Ev+0xec): undefined reference to 'attach_rtc' mDot.cpp:(.text._ZN4mDotC2Ev+0x318): undefined reference to 'vtable for mbed::Ticker' mDot.cpp:(.text._ZN4mDotC2Ev+0x328): undefined reference to 'rtc_read' mDot.cpp:(.text._ZN4mDotC2Ev+0x32c): undefined reference to 'rtc_write' mDot.cpp:(.text._ZN4mDotC2Ev+0x330): undefined reference to 'rtc_init' mDot.cpp:(.text._ZN4mDotC2Ev+0x38c): undefined reference to 'set_time' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(mDot.o): In function 'mDot::joinBase(unsigned long const&)': mDot.cpp:(.text._ZN4mDot8joinBaseERKm+0x84): undefined reference to 'mbed::Timer::Timer()' mDot.cpp:(.text._ZN4mDot8joinBaseERKm+0x8c): undefined reference to 'mbed::Timer::start()' mDot.cpp:(.text._ZN4mDot8joinBaseERKm+0x10c): undefined reference to 'mbed::Timer::Timer()' mDot.cpp:(.text._ZN4mDot8joinBaseERKm+0x112): undefined reference to 'mbed::Timer::start()' mDot.cpp:(.text._ZN4mDot8joinBaseERKm+0x148): undefined reference to 'mbed::Timer::read_ms()' mDot.cpp:(.text._ZN4mDot8joinBaseERKm+0x174): undefined reference to 'osDelay' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(mDot.o): In function 'mDot::sendBase(std::vector<unsigned char, std::allocator<unsigned char> > const&, bool const&, bool const&, bool const&)': mDot.cpp:(.text._ZN4mDot8sendBaseERKSt6vectorIhSaIhEERKbS6_S6_+0x234): undefined reference to 'mbed::Timer::Timer()' mDot.cpp:(.text._ZN4mDot8sendBaseERKSt6vectorIhSaIhEERKbS6_S6_+0x23a): undefined reference to 'mbed::Timer::start()' mDot.cpp:(.text._ZN4mDot8sendBaseERKSt6vectorIhSaIhEERKbS6_S6_+0x290): undefined reference to 'mbed::Timer::read_ms()' mDot.cpp:(.text._ZN4mDot8sendBaseERKSt6vectorIhSaIhEERKbS6_S6_+0x2c6): undefined reference to 'osDelay' mDot.cpp:(.text._ZN4mDot8sendBaseERKSt6vectorIhSaIhEERKbS6_S6_+0x2d8): undefined reference to 'mbed::Timer::Timer()' mDot.cpp:(.text._ZN4mDot8sendBaseERKSt6vectorIhSaIhEERKbS6_S6_+0x2de): undefined reference to 'mbed::Timer::start()' mDot.cpp:(.text._ZN4mDot8sendBaseERKSt6vectorIhSaIhEERKbS6_S6_+0x33c): undefined reference to 'mbed::Timer::read_ms()' mDot.cpp:(.text._ZN4mDot8sendBaseERKSt6vectorIhSaIhEERKbS6_S6_+0x350): undefined reference to 'osDelay' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(MdotRadio.o): In function 'MdotRadio::SetAntSw(unsigned char)': MdotRadio.cpp:(.text._ZN9MdotRadio8SetAntSwEh+0x5c): undefined reference to 'mbed_assert_internal' MdotRadio.cpp:(.text._ZN9MdotRadio8SetAntSwEh+0x68): undefined reference to 'mbed_assert_internal' MdotRadio.cpp:(.text._ZN9MdotRadio8SetAntSwEh+0x74): undefined reference to 'mbed_assert_internal' MdotRadio.cpp:(.text._ZN9MdotRadio8SetAntSwEh+0x80): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(MdotRadio.o): In function 'MdotRadio::MdotRadio(osPriority)': MdotRadio.cpp:(.text._ZN9MdotRadioC2E10osPriority+0x50): undefined reference to 'gpio_init_out_ex' MdotRadio.cpp:(.text._ZN9MdotRadioC2E10osPriority+0x6c): undefined reference to 'gpio_init_out_ex' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(MdotRadio.o): In function 'MdotRadio::~MdotRadio()': MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0xc): undefined reference to 'rtos::RtosTimer::~RtosTimer()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x14): undefined reference to 'rtos::RtosTimer::~RtosTimer()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x1c): undefined reference to 'rtos::RtosTimer::~RtosTimer()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x24): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x2c): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x34): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x3c): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x44): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x4c): undefined reference to 'rtos::Thread::~Thread()' MdotRadio.cpp:(.text._ZN9MdotRadioD2Ev[_ZN9MdotRadioD5Ev]+0x58): undefined reference to 'rtos::Mutex::~Mutex()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(MdotRadio.o): In function 'MdotRadio::~MdotRadio()': MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0xc): undefined reference to 'rtos::RtosTimer::~RtosTimer()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x14): undefined reference to 'rtos::RtosTimer::~RtosTimer()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x1c): undefined reference to 'rtos::RtosTimer::~RtosTimer()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x24): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x2c): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x34): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x3c): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x44): undefined reference to 'mbed::InterruptIn::~InterruptIn()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x4c): undefined reference to 'rtos::Thread::~Thread()' MdotRadio.cpp:(.text._ZN9MdotRadioD0Ev[_ZN9MdotRadioD5Ev]+0x58): undefined reference to 'rtos::Mutex::~Mutex()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SpiFlash25.o): In function 'SpiFlash25::read_status()': SpiFlash25.cpp:(.text._ZN10SpiFlash2511read_statusEv+0x18): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2511read_statusEv+0x20): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2511read_statusEv+0x3e): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash2511read_statusEv+0x4a): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SpiFlash25.o): In function 'SpiFlash25::wait_for_write()': SpiFlash25.cpp:(.text._ZN10SpiFlash2514wait_for_writeEv+0x6): undefined reference to 'wait_us' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SpiFlash25.o): In function 'SpiFlash25::enable_write()': SpiFlash25.cpp:(.text._ZN10SpiFlash2512enable_writeEv+0x18): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2512enable_writeEv+0x32): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash2512enable_writeEv+0x3e): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SpiFlash25.o): In function 'SpiFlash25::read(int, int, char*)': SpiFlash25.cpp:(.text._ZN10SpiFlash254readEiiPc+0x2e): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash254readEiiPc+0x38): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash254readEiiPc+0x42): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash254readEiiPc+0x4a): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash254readEiiPc+0x5a): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash254readEiiPc+0x7e): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash254readEiiPc+0x8a): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SpiFlash25.o): In function 'SpiFlash25::clear_sector(int)': SpiFlash25.cpp:(.text._ZN10SpiFlash2512clear_sectorEi+0x1e): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2512clear_sectorEi+0x28): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2512clear_sectorEi+0x32): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2512clear_sectorEi+0x3a): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2512clear_sectorEi+0x5c): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash2512clear_sectorEi+0x68): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SpiFlash25.o): In function 'SpiFlash25::write_page(int, int, char const*)': SpiFlash25.cpp:(.text._ZN10SpiFlash2510write_pageEiiPKc+0x22): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2510write_pageEiiPKc+0x2c): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2510write_pageEiiPKc+0x36): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2510write_pageEiiPKc+0x3e): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2510write_pageEiiPKc+0x50): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash2510write_pageEiiPKc+0x76): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash2510write_pageEiiPKc+0x82): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SpiFlash25.o): In function 'SpiFlash25::wakeup()': SpiFlash25.cpp:(.text._ZN10SpiFlash256wakeupEv+0x18): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash256wakeupEv+0x32): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash256wakeupEv+0x3e): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SpiFlash25.o): In function 'SpiFlash25::SpiFlash25(PinName, PinName, PinName, PinName, PinName, PinName, int)': SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x1c): undefined reference to 'mbed::SPI::SPI(PinName, PinName, PinName, PinName)' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x32): undefined reference to 'gpio_init_out' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x4c): undefined reference to 'mbed::SPI::format(int, int)' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x54): undefined reference to 'mbed::SPI::frequency(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x70): undefined reference to 'gpio_init_out' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x9c): undefined reference to 'gpio_init_out' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0xca): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0xd2): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0xde): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0xea): undefined reference to 'mbed::SPI::write(int)' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x118): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x124): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x130): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x13c): undefined reference to 'mbed_assert_internal' SpiFlash25.cpp:(.text._ZN10SpiFlash25C2E7PinNameS0_S0_S0_S0_S0_i+0x148): undefined reference to 'mbed_assert_internal' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SetChannel(unsigned long)': SxRadio1272.cpp:(.text._ZN11SxRadio127210SetChannelEm+0x10): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio127210SetChannelEm+0x5c): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SetRxConfig(SxRadio::RadioModems_t, unsigned long, unsigned long, unsigned char, unsigned long, unsigned short, unsigned short, bool, unsigned char, bool, bool, unsigned char, bool, bool)': SxRadio1272.cpp:(.text._ZN11SxRadio127211SetRxConfigEN7SxRadio13RadioModems_tEmmhmttbhbbhbb+0x54): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio127211SetRxConfigEN7SxRadio13RadioModems_tEmmhmttbhbbhbb+0x1b0): undefined reference to 'rtos::Mutex::unlock()' SxRadio1272.cpp:(.text._ZN11SxRadio127211SetRxConfigEN7SxRadio13RadioModems_tEmmhmttbhbbhbb+0x2d4): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Rssi(SxRadio::RadioModems_t)': SxRadio1272.cpp:(.text._ZN11SxRadio12724RssiEN7SxRadio13RadioModems_tE+0x10): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12724RssiEN7SxRadio13RadioModems_tE+0x20): undefined reference to 'rtos::Mutex::unlock()' SxRadio1272.cpp:(.text._ZN11SxRadio12724RssiEN7SxRadio13RadioModems_tE+0x38): undefined reference to 'rtos::Mutex::unlock()' SxRadio1272.cpp:(.text._ZN11SxRadio12724RssiEN7SxRadio13RadioModems_tE+0x52): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Write(unsigned char, unsigned char)': SxRadio1272.cpp:(.text._ZN11SxRadio12725WriteEhh+0x18): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12725WriteEhh+0x2c): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Read(unsigned char)': SxRadio1272.cpp:(.text._ZN11SxRadio12724ReadEh+0x12): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12724ReadEh+0x28): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Terminate()': SxRadio1272.cpp:(.text._ZN11SxRadio12729TerminateEv+0xe): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12729TerminateEv+0x16): undefined reference to 'mbed::InterruptIn::disable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12729TerminateEv+0x1e): undefined reference to 'mbed::InterruptIn::disable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12729TerminateEv+0x26): undefined reference to 'mbed::InterruptIn::disable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12729TerminateEv+0x2e): undefined reference to 'mbed::InterruptIn::disable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12729TerminateEv+0x36): undefined reference to 'mbed::InterruptIn::disable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12729TerminateEv+0x3e): undefined reference to 'rtos::Thread::terminate()' SxRadio1272.cpp:(.text._ZN11SxRadio12729TerminateEv+0x48): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::TimeOnAir(SxRadio::RadioModems_t, unsigned char)': SxRadio1272.cpp:(.text._ZN11SxRadio12729TimeOnAirEN7SxRadio13RadioModems_tEh+0x16): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12729TimeOnAirEN7SxRadio13RadioModems_tEh+0x2a): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SignalMacEvent()': SxRadio1272.cpp:(.text._ZN11SxRadio127214SignalMacEventEv+0x4): undefined reference to 'rtos::Thread::signal_set(long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::OnRxTxTimeoutIrq(void const*)': SxRadio1272.cpp:(.text._ZN11SxRadio127216OnRxTxTimeoutIrqEPKv+0x8): undefined reference to 'rtos::Thread::signal_set(long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::OnSyncTimeoutIrq(void const*)': SxRadio1272.cpp:(.text._ZN11SxRadio127216OnSyncTimeoutIrqEPKv+0x8): undefined reference to 'rtos::Thread::signal_set(long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SX1272OnDioIrq()': SxRadio1272.cpp:(.text._ZN11SxRadio127214SX1272OnDioIrqEv+0x4): undefined reference to 'rtos::Thread::signal_set(long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SX1272IrqFskSyncMatch() [clone .part.2]': SxRadio1272.cpp:(.text._ZN11SxRadio127221SX1272IrqFskSyncMatchEv.part.2+0x8): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SetTxConfig(SxRadio::RadioModems_t, signed char, unsigned long, unsigned long, unsigned long, unsigned char, unsigned short, bool, bool, bool, unsigned char, bool, unsigned long)': SxRadio1272.cpp:(.text._ZN11SxRadio127211SetTxConfigEN7SxRadio13RadioModems_tEammmhtbbbhbm+0x48): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio127211SetTxConfigEN7SxRadio13RadioModems_tEammmhtbbbhbm+0x1d2): undefined reference to 'rtos::Mutex::unlock()' SxRadio1272.cpp:(.text._ZN11SxRadio127211SetTxConfigEN7SxRadio13RadioModems_tEammmhtbbbhbm+0x2b2): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::ReadBuffer(unsigned char, unsigned char*, unsigned char)': SxRadio1272.cpp:(.text._ZN11SxRadio127210ReadBufferEhPhh+0x16): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio127210ReadBufferEhPhh+0x38): undefined reference to 'mbed::SPI::write(int)' SxRadio1272.cpp:(.text._ZN11SxRadio127210ReadBufferEhPhh+0x4a): undefined reference to 'mbed::SPI::write(int)' SxRadio1272.cpp:(.text._ZN11SxRadio127210ReadBufferEhPhh+0x78): undefined reference to 'mbed_assert_internal' SxRadio1272.cpp:(.text._ZN11SxRadio127210ReadBufferEhPhh+0x84): undefined reference to 'mbed_assert_internal' SxRadio1272.cpp:(.text._ZN11SxRadio127210ReadBufferEhPhh+0x6e): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::WriteBuffer(unsigned char, unsigned char const*, unsigned char)': SxRadio1272.cpp:(.text._ZN11SxRadio127211WriteBufferEhPKhh+0x16): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio127211WriteBufferEhPKhh+0x38): undefined reference to 'mbed::SPI::write(int)' SxRadio1272.cpp:(.text._ZN11SxRadio127211WriteBufferEhPKhh+0x4c): undefined reference to 'mbed::SPI::write(int)' SxRadio1272.cpp:(.text._ZN11SxRadio127211WriteBufferEhPKhh+0x76): undefined reference to 'mbed_assert_internal' SxRadio1272.cpp:(.text._ZN11SxRadio127211WriteBufferEhPKhh+0x82): undefined reference to 'mbed_assert_internal' SxRadio1272.cpp:(.text._ZN11SxRadio127211WriteBufferEhPKhh+0x6c): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SxRadio1272(PinName, PinName, PinName, PinName, PinName, PinName, PinName, PinName, PinName, PinName, osPriority)': SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x50): undefined reference to 'rtos::Mutex::Mutex()' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x6a): undefined reference to 'rtos::Thread::Thread(void (*)(void const*), void*, osPriority, unsigned long, unsigned char*)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x8a): undefined reference to 'gpio_init_inout' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x9e): undefined reference to 'mbed::InterruptIn::InterruptIn(PinName)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0xa6): undefined reference to 'mbed::InterruptIn::InterruptIn(PinName)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0xae): undefined reference to 'mbed::InterruptIn::InterruptIn(PinName)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0xc8): undefined reference to 'mbed::InterruptIn::InterruptIn(PinName)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0xd2): undefined reference to 'mbed::InterruptIn::InterruptIn(PinName)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0xe8): undefined reference to 'mbed::SPI::SPI(PinName, PinName, PinName, PinName)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x104): undefined reference to 'gpio_init_out_ex' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x118): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x126): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x134): undefined reference to 'rtos::RtosTimer::RtosTimer(void (*)(void const*), os_timer_type, void*)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x148): undefined reference to 'mbed::InterruptIn::mode(PinMode)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x150): undefined reference to 'mbed::InterruptIn::mode(PinMode)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x158): undefined reference to 'mbed::InterruptIn::mode(PinMode)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x160): undefined reference to 'mbed::InterruptIn::mode(PinMode)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x168): undefined reference to 'mbed::InterruptIn::mode(PinMode)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x184): undefined reference to 'gpio_irq_set' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x1a0): undefined reference to 'gpio_irq_set' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x1bc): undefined reference to 'gpio_irq_set' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x1d8): undefined reference to 'gpio_irq_set' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x1f4): undefined reference to 'gpio_irq_set' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x1fe): undefined reference to 'mbed::SPI::format(int, int)' SxRadio1272.cpp:(.text._ZN11SxRadio1272C2E7PinNameS0_S0_S0_S0_S0_S0_S0_S0_S0_10osPriority+0x206): undefined reference to 'mbed::SPI::frequency(int)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Reset()': SxRadio1272.cpp:(.text._ZN11SxRadio12725ResetEv+0xa): undefined reference to 'gpio_dir' SxRadio1272.cpp:(.text._ZN11SxRadio12725ResetEv+0x10): undefined reference to 'wait_ms' SxRadio1272.cpp:(.text._ZN11SxRadio12725ResetEv+0x18): undefined reference to 'gpio_dir' SxRadio1272.cpp:(.text._ZN11SxRadio12725ResetEv+0x22): undefined reference to 'wait_ms' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Init(SxRadioEvents*)': SxRadio1272.cpp:(.text._ZN11SxRadio12724InitEP13SxRadioEvents+0x10): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12724InitEP13SxRadioEvents+0x2a): undefined reference to 'mbed::InterruptIn::enable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12724InitEP13SxRadioEvents+0x32): undefined reference to 'mbed::InterruptIn::enable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12724InitEP13SxRadioEvents+0x3a): undefined reference to 'mbed::InterruptIn::enable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12724InitEP13SxRadioEvents+0x42): undefined reference to 'mbed::InterruptIn::enable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12724InitEP13SxRadioEvents+0x4c): undefined reference to 'mbed::InterruptIn::enable_irq()' SxRadio1272.cpp:(.text._ZN11SxRadio12724InitEP13SxRadioEvents+0x84): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Random()': SxRadio1272.cpp:(.text._ZN11SxRadio12726RandomEv+0xe): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12726RandomEv+0x3a): undefined reference to 'wait_ms' SxRadio1272.cpp:(.text._ZN11SxRadio12726RandomEv+0x62): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Sleep()': SxRadio1272.cpp:(.text._ZN11SxRadio12725SleepEv+0xe): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12725SleepEv+0x16): undefined reference to 'rtos::RtosTimer::stop()' SxRadio1272.cpp:(.text._ZN11SxRadio12725SleepEv+0x20): undefined reference to 'rtos::RtosTimer::stop()' SxRadio1272.cpp:(.text._ZN11SxRadio12725SleepEv+0x28): undefined reference to 'rtos::RtosTimer::stop()' SxRadio1272.cpp:(.text._ZN11SxRadio12725SleepEv+0x44): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Standby()': SxRadio1272.cpp:(.text._ZN11SxRadio12727StandbyEv+0xe): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12727StandbyEv+0x16): undefined reference to 'rtos::RtosTimer::stop()' SxRadio1272.cpp:(.text._ZN11SxRadio12727StandbyEv+0x1e): undefined reference to 'rtos::RtosTimer::stop()' SxRadio1272.cpp:(.text._ZN11SxRadio12727StandbyEv+0x28): undefined reference to 'rtos::RtosTimer::stop()' SxRadio1272.cpp:(.text._ZN11SxRadio12727StandbyEv+0x44): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Rx(unsigned long)': SxRadio1272.cpp:(.text._ZN11SxRadio12722RxEm+0x12): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12722RxEm+0x1b8): undefined reference to 'rtos::RtosTimer::start(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12722RxEm+0x1c4): undefined reference to 'rtos::RtosTimer::start(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12722RxEm+0x60): undefined reference to 'rtos::Mutex::unlock()' SxRadio1272.cpp:(.text._ZN11SxRadio12722RxEm+0x1d6): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SetTx(unsigned long)': SxRadio1272.cpp:(.text._ZN11SxRadio12725SetTxEm+0x10): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12725SetTxEm+0x54): undefined reference to 'rtos::RtosTimer::start(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12725SetTxEm+0x66): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::Send(unsigned char const*, unsigned char)': SxRadio1272.cpp:(.text._ZN11SxRadio12724SendEPKhh+0x16): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12724SendEPKhh+0x34): undefined reference to 'rtos::Mutex::unlock()' SxRadio1272.cpp:(.text._ZN11SxRadio12724SendEPKhh+0x142): undefined reference to 'wait_ms' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::StartCad()': SxRadio1272.cpp:(.text._ZN11SxRadio12728StartCadEv+0xe): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12728StartCadEv+0x50): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SetModem(SxRadio::RadioModems_t)': SxRadio1272.cpp:(.text._ZN11SxRadio12728SetModemEN7SxRadio13RadioModems_tE+0x10): undefined reference to 'rtos::Mutex::lock(unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio12728SetModemEN7SxRadio13RadioModems_tE+0x64): undefined reference to 'rtos::Mutex::unlock()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::OnTimeoutIrqBottom()': SxRadio1272.cpp:(.text._ZN11SxRadio127218OnTimeoutIrqBottomEv+0x86): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SX1272IrqTxDone()': SxRadio1272.cpp:(.text._ZN11SxRadio127215SX1272IrqTxDoneEv+0x8): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SX1272IrqFskRxDone(unsigned char)': SxRadio1272.cpp:(.text._ZN11SxRadio127218SX1272IrqFskRxDoneEh+0x42): undefined reference to 'rtos::RtosTimer::stop()' SxRadio1272.cpp:(.text._ZN11SxRadio127218SX1272IrqFskRxDoneEh+0x118): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::SX1272IrqLoraRxDone(unsigned char)': SxRadio1272.cpp:(.text._ZN11SxRadio127219SX1272IrqLoraRxDoneEh+0xcc): undefined reference to 'rtos::RtosTimer::stop()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o):SxRadio1272.cpp:(.text._ZN11SxRadio127219SX1272IrqLoraRxDoneEh+0x114): more undefined references to 'rtos::RtosTimer::stop()' follow ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::RadioThread(void const*)': SxRadio1272.cpp:(.text._ZN11SxRadio127211RadioThreadEPKv+0x28): undefined reference to 'rtos::Mutex::unlock()' SxRadio1272.cpp:(.text._ZN11SxRadio127211RadioThreadEPKv+0x34): undefined reference to 'rtos::Thread::signal_wait(long, unsigned long)' SxRadio1272.cpp:(.text._ZN11SxRadio127211RadioThreadEPKv+0x40): undefined reference to 'rtos::Mutex::lock(unsigned long)' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::~SxRadio1272()': SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0xc): undefined reference to 'rtos::RtosTimer::~RtosTimer()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x14): undefined reference to 'rtos::RtosTimer::~RtosTimer()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x1c): undefined reference to 'rtos::RtosTimer::~RtosTimer()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x24): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x2c): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x34): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x3c): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x44): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x4c): undefined reference to 'rtos::Thread::~Thread()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D2Ev[_ZN11SxRadio1272D5Ev]+0x58): undefined reference to 'rtos::Mutex::~Mutex()' ../libmDot\libmDot-1.0.8-1-g7ae9ef7-GCC_ARM.a(SxRadio1272.o): In function 'SxRadio1272::~SxRadio1272()': SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0xc): undefined reference to 'rtos::RtosTimer::~RtosTimer()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x14): undefined reference to 'rtos::RtosTimer::~RtosTimer()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x1c): undefined reference to 'rtos::RtosTimer::~RtosTimer()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x24): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x2c): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x34): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x3c): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x44): undefined reference to 'mbed::InterruptIn::~InterruptIn()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x4c): undefined reference to 'rtos::Thread::~Thread()' SxRadio1272.cpp:(.text._ZN11SxRadio1272D0Ev[_ZN11SxRadio1272D5Ev]+0x58): undefined reference to 'rtos::Mutex::~Mutex()' collect2.exe: error: ld returned 1 exit status makefile:62: recipe for target 'test02.elf' failed make: *** [test02.elf] Error 1 17:10:35 Build Finished (took 10s.360ms)
- This reply was modified 8 years, 3 months ago by Damian Christie.
- This reply was modified 8 years, 3 months ago by Damian Christie.
- This reply was modified 8 years, 3 months ago by Damian Christie.
August 25, 2016 at 1:33 pm #14626Mike FioreBlockedDamian,
If you only included mbed-src in your project, you didn’t get any of the RTOS source files. They’re required by the mDot library because it uses the RTOS.
Even if you got all the source files, I think you’d still run into issues. Your eclipse environment needs to be configured exactly right in order for the build to succeed.
I think instead of configuring the environment yourself, you should do something similar to this example:
https://developer.mbed.org/users/c1728p9/notebook/debugging-mbed-50-projects-with-eclipse-and-pyocd/
This example uses mbed 5.x, but you could do approximately the same with mbed 2.0. You can get the mbed offline sdk (build tools and source code) from:
https://github.com/ARMmbed/mbed-os
for now, you’ll need to use an earlier revision as we don’t have full mbed 5.x support for the mDot yet. Check out tag mbed_lib_rev121 with “git checkout mbed_lib_rev121”.
Our wiki page has some info on how to properly run the workspace tools build and make commands to build mDot projects:
https://developer.mbed.org/teams/MultiTech/wiki/Using-the-mbed-SDK-for-mDot-development
Hope this helps!
Cheers,
Mike
Cheers,
Mike
August 26, 2016 at 3:25 am #14630Damian ChristieParticipantYour eclipse environment needs to be configured exactly right in order for the build to succeed.
That’s the goal!!!
I just checked my workspace and I appear to already have the RTOS files found here. Are there others I need?
Thanks.
August 26, 2016 at 7:30 am #14631Mike FioreBlockedDamian,
What I’m saying is that there is a potentially easier and more future proof way of using Eclipse with the mDot and mbed libraries. Did you take a look at the link I posted about using mbed with Eclipse?
Cheers,
Mike
-
AuthorPosts
- You must be logged in to reply to this topic.