Dear Community,
I am trying to set a #OM15076-3 Carrier Board with a #JN5189 Module for a #QN9090 development.
I'm trying to run a BLE project based on an example that was working in MCUXpresso version 11.6.0 with QN9090DK6 SDK version 2.6.5 (Same workspace). I'm currently running the same IDE version with SDK 2.6.10.
Looks like in <path>\workspace4\qn9090dk6_beacon_bm\libs I'm missing the following libraries:
Building target: qn9090dk6_beacon_bm.axf Invoking: MCU Linker arm-none-eabi-gcc -L"D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\libs" -Xlinker --defsym=gUseInternalStorageLink_d=1 -Xlinker -Map="qn9090dk6_beacon_bm.map" -Xlinker --gc-sections -Xlinker -print-memory-usage -Xlinker --no-wchar-size-warning -Xlinker --sort-section=alignment -Xlinker --defsym=__ram_vector_table__=1 -Xlinker --defsym=gUseNVMLink_d=1 -Xlinker --defsym=__app_load_address__=0 -Xlinker --defsym=__app_stated_size__=294912 -Xlinker --cref -mcpu=cortex-m4 -mthumb -T connectivity.ld -L ../src -u _scanf_float -o "qn9090dk6_beacon_bm.axf" ./utilities/fsl_assert.o ./utilities/fsl_debug_console.o ./utilities/fsl_str.o ./startup/startup_qn9090.o ./source/common/gatt_db/gatt_database.o ./source/common/ApplMain.o ./source/common/ble_conn_manager.o ./source/common/ble_controller_task.o ./source/common/ble_host_tasks.o ./source/common/ble_init.o ./source/common/ble_service_discovery.o ./source/app_config.o ./source/beacon.o ./source/semihost_hardfault.o ./framework/XCVR/DK6/fsl_xcvr.o ./framework/TimersManager/source/TMR_Adapter.o ./framework/TimersManager/source/TimersManager.o ./framework/SerialManager/source/SerialManager.o ./framework/SerialManager/source/UART_Serial_Adapter.o ./framework/SecLib/source/SecLib.o ./framework/Reset/source/Reset.o ./framework/RNG/source/RNG.o ./framework/Panic/source/Panic.o ./framework/PDM/source/pdm_port.o ./framework/OSAbstraction/source/fsl_os_abstraction_bm.o ./framework/NVM/source/NV_Flash.o ./framework/NVM/source/NV_FsciCommands.o ./framework/ModuleInfo/source/ModuleInfo.o ./framework/Messaging/source/Messaging.o ./framework/MemManager/source/MemManager.o ./framework/LowPower/source/PWR.o ./framework/LowPower/source/PWRLib.o ./framework/LowPower/source/PWR_setjmp.o ./framework/Logging/source/dbg_logging.o ./framework/Lists/source/GenericList.o ./framework/LED/source/LED.o ./framework/Keyboard/source/Keyboard.o ./framework/GPIO/source/GPIO_Adapter.o ./framework/FunctionLib/source/FunctionLib.o ./framework/Flash/Flash_Adapter.o ./drivers/fsl_adc.o ./drivers/fsl_aes.o ./drivers/fsl_clock.o ./drivers/fsl_common.o ./drivers/fsl_ctimer.o ./drivers/fsl_dma.o ./drivers/fsl_flash.o ./drivers/fsl_flexcomm.o ./drivers/fsl_fmeas.o ./drivers/fsl_gpio.o ./drivers/fsl_inputmux.o ./drivers/fsl_pint.o ./drivers/fsl_power.o ./drivers/fsl_reset.o ./drivers/fsl_rng.o ./drivers/fsl_rtc.o ./drivers/fsl_sha.o ./drivers/fsl_spi.o ./drivers/fsl_spifi.o ./drivers/fsl_usart.o ./drivers/fsl_usart_dma.o ./drivers/fsl_wtimer.o ./device/system_QN9090.o ./component/uart/usart_adapter.o ./component/serial_manager/serial_manager.o ./component/serial_manager/serial_port_uart.o ./component/lists/generic_list.o ./board/board.o ./board/board_utility.o ./board/hardware_init.o ./board/pin_mux.o ./bluetooth/host/config/ble_globals.o ./bluetooth/hci_transport/source/hcit_serial_interface.o ./bluetooth/controller/config/controller_config.o -lm -lc -lgcc -lnosys -l_crypto_m4 -lRadio -l_ble_controller -lPDM -l_ble_5-0_host_peripheral_cm4_noFP d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -l_crypto_m4 d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -lRadio d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -l_ble_controller d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -lPDM d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -l_ble_5-0_host_peripheral_cm4_noFP collect2.exe: error: ld returned 1 exit status make[1]: *** [makefile:80: qn9090dk6_beacon_bm.axf] Error 1 make: *** [makefile:71: all] Error 2 "make -r -j8 all" terminated with exit code 2. Build might be incomplete.
Thanks in advance for your help.
Best regards,
Gabriel
Hello @GabrielB88,
Hope you are doing well.
Could you please help us with more details about your development? How are you modifying the example? How can I reproduce this issue?
I tried the following steps to try to reproduce this behavior:
1. Uninstall all the QN9090 SDKs from MCUXpresso
2. Install SDK 2.6.5
3. Import beacon_bm example from SDK
4. Build project
5. Uninstall SDK 2.6.5
6. Install SDK 2.6.10
7. Clean project
8. Build project
The project builds successfully using the IDE 11.6.0 and the same workspace.
Regards,
Eduardo.
Hi Eduardo,
Thanks for the follow-up.
Basically, my lib folder is empty since it was working, I don't know why.
 
Then I add all of those libraries from the "new" example and get more errors.
What happens if you delete those files, do you have the same error?
If so, what happens when you add them back manually?
Thanks again for your collaboration.
Regards,
Gabriel
Hi,
These libraries should be automatically added when you import the project from the SDK to your workspace. Could you please try importing again a clean version of the beacon_bm project from the SDK and confirm if these files were added?
Just to confirm, where are you getting these files from? When you say
Then I add all of those libraries from the "new" example and get more errors
Does it mean that you are copying these files from a clean/re-imported beacon_bm project?
I tried deleting the libraries and copying them from heart_rate_sensor project and the project builds successfully.
Could you please provide a screenshot of your Project properties > C/C++ Build > Settings >MCU Linker > Libraries?
Regards,
Eduardo.
Hi Eduardo,
These are the logs you asked for when there are no files in the libs folder:
m
c
gcc
nosys
_crypto_m4
Radio
_ble_controller
PDM
_ble_5-0_host_peripheral_cm4_noFP
Indeed, the files I'm adding manually are from another BLE example (that is properly working).
As soon as I add them from a fresh example, these are the message errors:
Building target: qn9090dk6_beacon_bm.axf
Invoking: MCU Linker
arm-none-eabi-gcc -L"D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\libs" -Xlinker --defsym=gUseInternalStorageLink_d=1 -Xlinker -Map="qn9090dk6_beacon_bm.map" -Xlinker --gc-sections -Xlinker -print-memory-usage -Xlinker --no-wchar-size-warning -Xlinker --sort-section=alignment -Xlinker --defsym=__ram_vector_table__=1 -Xlinker --defsym=gUseNVMLink_d=1 -Xlinker --defsym=__app_load_address__=0 -Xlinker --defsym=__app_stated_size__=294912 -Xlinker --cref -mcpu=cortex-m4 -mthumb -T connectivity.ld -L ../src -u _scanf_float -o "qn9090dk6_beacon_bm.axf" ./utilities/fsl_assert.o ./utilities/fsl_debug_console.o ./utilities/fsl_str.o  ./startup/startup_qn9090.o  ./source/common/gatt_db/gatt_database.o  ./source/common/ApplMain.o ./source/common/ble_conn_manager.o ./source/common/ble_controller_task.o ./source/common/ble_host_tasks.o ./source/common/ble_init.o ./source/common/ble_service_discovery.o  ./source/app_config.o ./source/beacon.o ./source/semihost_hardfault.o  ./framework/XCVR/DK6/fsl_xcvr.o  ./framework/TimersManager/source/TMR_Adapter.o ./framework/TimersManager/source/TimersManager.o  ./framework/SerialManager/source/SerialManager.o ./framework/SerialManager/source/UART_Serial_Adapter.o  ./framework/SecLib/source/SecLib.o  ./framework/Reset/source/Reset.o  ./framework/RNG/source/RNG.o  ./framework/Panic/source/Panic.o  ./framework/PDM/source/pdm_port.o  ./framework/OSAbstraction/source/fsl_os_abstraction_bm.o  ./framework/NVM/source/NV_Flash.o ./framework/NVM/source/NV_FsciCommands.o  ./framework/ModuleInfo/source/ModuleInfo.o  ./framework/Messaging/source/Messaging.o  ./framework/MemManager/source/MemManager.o  ./framework/LowPower/source/PWR.o ./framework/LowPower/source/PWRLib.o ./framework/LowPower/source/PWR_setjmp.o  ./framework/Logging/source/dbg_logging.o  ./framework/Lists/source/GenericList.o  ./framework/LED/source/LED.o  ./framework/Keyboard/source/Keyboard.o  ./framework/GPIO/source/GPIO_Adapter.o  ./framework/FunctionLib/source/FunctionLib.o  ./framework/Flash/Flash_Adapter.o  ./drivers/fsl_adc.o ./drivers/fsl_aes.o ./drivers/fsl_clock.o ./drivers/fsl_common.o ./drivers/fsl_ctimer.o ./drivers/fsl_dma.o ./drivers/fsl_flash.o ./drivers/fsl_flexcomm.o ./drivers/fsl_fmeas.o ./drivers/fsl_gpio.o ./drivers/fsl_inputmux.o ./drivers/fsl_pint.o ./drivers/fsl_power.o ./drivers/fsl_reset.o ./drivers/fsl_rng.o ./drivers/fsl_rtc.o ./drivers/fsl_sha.o ./drivers/fsl_spi.o ./drivers/fsl_spifi.o ./drivers/fsl_usart.o ./drivers/fsl_usart_dma.o ./drivers/fsl_wtimer.o  ./device/system_QN9090.o  ./component/uart/usart_adapter.o  ./component/serial_manager/serial_manager.o ./component/serial_manager/serial_port_uart.o  ./component/lists/generic_list.o  ./board/board.o ./board/board_utility.o ./board/hardware_init.o ./board/pin_mux.o  ./bluetooth/host/config/ble_globals.o  ./bluetooth/hci_transport/source/hcit_serial_interface.o  ./bluetooth/controller/config/controller_config.o   -lm -lc -lgcc -lnosys -l_crypto_m4 -lRadio -l_ble_controller -lPDM -l_ble_5-0_host_peripheral_cm4_noFP
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: ./framework/SecLib/source/SecLib.o: in function `ECDH_P256_GenerateKeys':
D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2284: undefined reference to `Ecdh_GenerateNewKeys'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2317: undefined reference to `gEcP256_MultiplicationBufferSize_c'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: ./framework/SecLib/source/SecLib.o: in function `ECDH_P256_ComputeDhKey':
D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2397: undefined reference to `gEcP256_MultiplicationBufferSize_c'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: ./framework/SecLib/source/SecLib.o: in function `ECDH_P256_GenerateKeysSeg':
D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2802: undefined reference to `Ecdh_GenerateNewKeysSeg'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2813: undefined reference to `gEcP256_MultiplicationBufferSize_c'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: ./framework/SecLib/source/SecLib.o: in function `ECDH_P256_ComputeDhKeySeg':
D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2896: undefined reference to `gEcP256_MultiplicationBufferSize_c'
Memory region         Used Size  Region Size  %age Used
        Flash640:      203916 B       288 KB     69.14%
     SCRATCH_RAM:          1 KB         1 KB    100.00%
            RAM0:       14504 B        87 KB     16.28%
            RAM1:          0 GB        64 KB      0.00%
collect2.exe: error: ld returned 1 exit status
make[1]: *** [makefile:80: qn9090dk6_beacon_bm.axf] Error 1
make: *** [makefile:71: all] Error 2
"make -r -j8 all" terminated with exit code 2. Build might be incomplete. 
Thanks again for your help, looking forward to hearing from you.
Regards,
Gabriel
Hi,
Could you please help us with more details about what are you trying to achieve? What are the modifications you have done to the project? Are you trying to merge two different projects?
Please, try to confirm if these libraries are added when re-importing a clean version of the same project from the SDK.
Could you provide a step-by-step guide that helps me to reproduce this behavior? Currently I am not able to see/reproduce this issue.
Regards,
Eduardo.
Hi @EduardoZamora,
Thanks for the follow-up as always.
Indeed, the example "qn9090dk6_beacon_bm" was modified. Part of those modifications was to merge different examples.
As soon as I create the same example from scratch, I have no problem building the code without modifications.
The fact is, many months ago, that workspace was running fine on the demo board. Now I cannot even build it.
I think the easiest way for you to reproduce the issue is by running my workspace.
Please, find attached one of the workspace files I'm struggling with.
Let me know if it is ok with you to proceed like this.
Regards,
Gabriel
Hi,
Due the nature of your application (a merge or hybrid using different projects/extras), I will strongly suggest creating a new project using the latest SDK version as base for your development.
Regards,
Eduardo.
Hi @EduardoZamora,
I completely understand, it would be better to restart with a project.
The problem is that I have 3 or 4 workspaces with different projects merged, so it requires a lot of effort thanks to an SDK update (I guess).
I'll start with one project and see if I can manage to make it work with the actual setup, but, did you manage to replicate the problem with my project?
It will be good to understand at least what will be the depth of changes I need to do with respect to the previous SDK project dev.
Thanks as always.
Regards,
Gabriel
Hi,
The project structure may be different across the example projects and merging them may cause some conflicts.
You can try copying "libs" and "framework/SecLib" folders that your base project requires from a clean version of the same project from the SDK (beacon_bm, in this case). The project should build, nonetheless, we cannot assure that your application will be fully functional, and our support will be limited.
Please consider creating a new project using the latest SDK version as base for your development.
Regards,
Eduardo.