Hi everyone,
I'm currently migrating a firmware project from version 3.2.8.1 to 3.2.9.2, and I’m encountering a linker error during the build process.
Environment:
GNU Arm Embedded Toolchain 10.3.1 (2021.10)
My project directory: D:\Itsokey\...
D:\Itsokey\...
Toolchain path: C:\Program Files (x86)\GNU Arm Embedded Toolchain\...
C:\Program Files (x86)\GNU Arm Embedded Toolchain\...
The static library liblmac.mod.a was provided by the vendor — I didn’t compile it myself.
liblmac.mod.a
Error message:
Building target: da16600_aws.elf c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/Itsokey/itsokey-wifi-firmware/apps/AWS/get_started_da16600/projects/da16600/../../../../../library\liblmac.mod.a(dbg_print.o): in function `dbg_rtt_vprintf': C:/Users/Thinkpalm/Desktop/mar04/da16200_freertos/core/wifistack/lmac/macsw/modules/dbg/src/dbg_print.c:77: undefined reference to `SEGGER_RTT_SetTerminal' c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/Users/Thinkpalm/Desktop/mar04/da16200_freertos/core/wifistack/lmac/macsw/modules/dbg/src/dbg_print.c:78: undefined reference to `SEGGER_RTT_printf' c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/Users/Thinkpalm/Desktop/mar04/da16200_freertos/core/wifistack/lmac/macsw/modules/dbg/src/dbg_print.c:79: undefined reference to `SEGGER_RTT_SetTerminal' collect2.exe: error: ld returned 1 exit status make[1]: *** [makefile:257: da16600_aws.elf] Error 1 make: *** [makefile:249: all] Error 2 "make -r all" terminated with exit code 2. Build might be incomplete.
It looks like the vendor’s library is referencing SEGGER RTT functions, but they aren’t available in my build.
Why is this error happening, and how should I resolve it?
Thanks in advance for any insights!
Hi Duveen,Apologies for the delay.Do you use the AWS SDK? If so, the available AWS SDK is based on the SDK v3.2.8.0 and requires to replace/merge some files in the AWS release folder into target SDK you use(it should be based on SDK v3.2.8.0 and v3.2.8.1 is almost same to SDK v3.2.8.0 so probably it could be OK). Please refer to the release file and readme file inside the release file.DA16200 - Ultra-Low Power Wi-Fi SoC for Battery-Powered IoT Devices | RenesasIf you want to migrate to SDK v3.2.9.2, you need to replace/merge some files in the AWS release folder into SDK v3.2.9.2. It needs to compare first between the SDK v3.2.8.0 and AWS release file to check what code/functions exactly are different. Then merge the changes/differences into SDK v3.2.9.2.We have tried to check/build the AWS code in SDK v3.2.9.2, we could build it. Refer to the attached DA16x_AWS_Module_v3.2.9.2.zip fileYou will need to replace or merge it to SDK v3.2.9.2, this is just to check for the code build.DA16x_AWS_Module_v3.2.9.2.zip
FYI, Here is code build capture without any errors.Best Regards,OV_Renesas