Troubles linking after switching to version 17 of the SDK

I'm getting the following linker errors after switching to the latest version of the SDK (17.1.0). I believe I've included the files that define the offending macros (for example, crys_ecpki_build.h), please advise how I can get rid of these undefined references.

Building ‘ble_app_hrs_pca10059_s140’ from solution ‘ble_app_hrs_pca10059_s140’ in configuration ‘Debug’
Linking ble_app_hrs_pca10059_s140.elf
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_ecc.o: in function `get_domain':
undefined reference to `CRYS_ECPKI_GetEcDomain'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_ecc.o: in function `nrf_crypto_backend_cc310_ecc_public_key_convert':
undefined reference to `_DX_ECPKI_BuildPublKey'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_ecc.o: in function `nrf_crypto_backend_cc310_key_pair_generate':
undefined reference to `CRYS_ECPKI_GenKeyPair'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_ecc.o: in function `nrf_crypto_backend_cc310_public_key_to_raw':
undefined reference to `CRYS_ECPKI_ExportPublKey'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_ecc.o: in function `nrf_crypto_backend_cc310_curve25519_key_pair_generate':
undefined reference to `CRYS_ECMONT_KeyPair'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_ecc.o: in function `nrf_crypto_backend_cc310_ed25519_key_pair_generate':
undefined reference to `CRYS_ECEDW_KeyPair'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_ecdh.o: in function `nrf_crypto_backend_cc310_ecdh_compute':
undefined reference to `CRYS_ECDH_SVDP_DH'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_ecdh.o: in function `nrf_crypto_backend_cc310_curve25519_ecdh_compute':
undefined reference to `CRYS_ECMONT_Scalarmult'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_init.o: in function `cc310_backend_init':
undefined reference to `SaSi_LibInit'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_init.o: in function `cc310_backend_uninit':
undefined reference to `SaSi_LibFini'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_rng.o: in function `nrf_crypto_rng_backend_init':
undefined reference to `CRYS_RndInit'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_rng.o: in function `nrf_crypto_rng_backend_vector_generate':
undefined reference to `CRYS_RND_GenerateVector'
Output/Debug/Obj/ble_app_hrs_pca10059_s140/cc310_backend_rng.o: in function `nrf_crypto_rng_backend_reseed':
undefined reference to `CRYS_RND_AddAdditionalInput'
C:\Nordic\nRF5_SDK_17.1.0_ddde560\components\libraries\crypto\backend\cc310/cc310_backend_rng.c:246: undefined reference to `CRYS_RND_Reseeding'
Build failed

Parents
  • Hi,

    All these errors are from the linker not finding functions defined in the nrf_cc310 library. So it looks like you have not included the nrf_cc310 library binary. Depending on which IC and toolchain you use you should pick the correct library from <SDK17.1>\external\nrf_cc310\lib\cortex-m4\ and add to your project. Have you done that? For instance, if using Segger Embedded Studio and nRF52840 you want to use <SDK17.1>\external\nrf_cc310\lib\cortex-m4\hard-float\libnrf_cc310_0.9.13.a.

Reply
  • Hi,

    All these errors are from the linker not finding functions defined in the nrf_cc310 library. So it looks like you have not included the nrf_cc310 library binary. Depending on which IC and toolchain you use you should pick the correct library from <SDK17.1>\external\nrf_cc310\lib\cortex-m4\ and add to your project. Have you done that? For instance, if using Segger Embedded Studio and nRF52840 you want to use <SDK17.1>\external\nrf_cc310\lib\cortex-m4\hard-float\libnrf_cc310_0.9.13.a.

Children
No Data
Related