This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Contact us for link errors.

The sample project is "nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\experimental\ble_nfc_pairing_reference" 

I think "micro_ecc" is a normal build.

Please check attached capture file.
1. "micro_ecc_lib_nrf52.a" is generated after micro-ecc is compiled normally.
2. Included "micro_ecc_lib_nrf52.a" in the SES project explorer.
3. Check ".... MICRO_ECC_ENABLED" in sdk_config.h.
4. "nrf_crypto_backend_micro_ecc_key_pair_generate" is defined in "micro_ecc_backend_ecc.h".
5. However, when linking, "nrf_crypto_backend_micro_ecc_key_pair_generate" symbol reference error occurred.

What parts should I refer to?
thank you.

----------------------------

** project build output list **

'Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/oberon_backend_hmac.o' is up to date
Output/Debug/Exe/ble_nfc_pairing_reference_pca10040_s132.elf does not exist.
Linking ble_nfc_pairing_reference_pca10040_s132.elf
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:C:\Work\EverAid\BT_SDK\nRF5_SDK_15.3.0_59ac345\components\libraries\crypto/nrf_crypto_ecc.c:58: undefined reference to `nrf_crypto_backend_micro_ecc_key_pair_generate'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.key_pair_generate_impl+0x4): undefined reference to `nrf_crypto_backend_micro_ecc_key_pair_generate'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.key_pair_generate_impl+0x8): undefined reference to `nrf_crypto_backend_micro_ecc_key_pair_generate'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.key_pair_generate_impl+0xc): undefined reference to `nrf_crypto_backend_micro_ecc_key_pair_generate'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:C:\Work\EverAid\BT_SDK\nRF5_SDK_15.3.0_59ac345\components\libraries\crypto/nrf_crypto_ecc.c:376: undefined reference to `nrf_crypto_backend_micro_ecc_public_key_from_raw'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.public_key_from_raw_impl+0x4): undefined reference to `nrf_crypto_backend_micro_ecc_public_key_from_raw'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.public_key_from_raw_impl+0x8): undefined reference to `nrf_crypto_backend_micro_ecc_public_key_from_raw'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.public_key_from_raw_impl+0xc): undefined reference to `nrf_crypto_backend_micro_ecc_public_key_from_raw'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:C:\Work\EverAid\BT_SDK\nRF5_SDK_15.3.0_59ac345\components\libraries\crypto/nrf_crypto_ecc.c:429: undefined reference to `nrf_crypto_backend_micro_ecc_public_key_to_raw'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.public_key_to_raw_impl+0x4): undefined reference to `nrf_crypto_backend_micro_ecc_public_key_to_raw'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.public_key_to_raw_impl+0x8): undefined reference to `nrf_crypto_backend_micro_ecc_public_key_to_raw'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecc.o:(.rodata.public_key_to_raw_impl+0xc): undefined reference to `nrf_crypto_backend_micro_ecc_public_key_to_raw'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecdh.o:C:\Work\EverAid\BT_SDK\nRF5_SDK_15.3.0_59ac345\components\libraries\crypto/nrf_crypto_ecdh.c:55: undefined reference to `nrf_crypto_backend_micro_ecc_ecdh_compute'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecdh.o:(.rodata.compute_impl+0x4): undefined reference to `nrf_crypto_backend_micro_ecc_ecdh_compute'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecdh.o:(.rodata.compute_impl+0x8): undefined reference to `nrf_crypto_backend_micro_ecc_ecdh_compute'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_crypto_ecdh.o:(.rodata.compute_impl+0xc): undefined reference to `nrf_crypto_backend_micro_ecc_ecdh_compute'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_ble_lesc.o: in function `nrf_ble_lesc_keypair_generate':
undefined reference to `g_nrf_crypto_ecc_secp256r1_curve_info'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_ble_lesc.o: in function `compute_and_give_dhkey':
undefined reference to `nrf_crypto_rng_vector_generate'
C:\Work\EverAid\BT_SDK\nRF5_SDK_15.3.0_59ac345\components\ble\peer_manager/nrf_ble_lesc.c:302: undefined reference to `g_nrf_crypto_ecc_secp256r1_curve_info'
Output/ble_nfc_pairing_reference_pca10040_s132 Debug/Obj/nrf_ble_lesc.o: in function `on_dhkey_request':
undefined reference to `g_nrf_crypto_ecc_secp256r1_curve_info'
Build failed

=============================

** micro_ecc build list **

C:\Work\EverAid\BT_SDK\nRF5_SDK_15.3.0_59ac345\external\micro-ecc>build_all.bat
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf51_armgcc/armgcc'
Creating library: ../../nrf51_armgcc/armgcc/micro_ecc_lib_nrf51.a
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf51_armgcc/armgcc'
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf51_iar/armgcc'
Creating library: ../../nrf51_iar/armgcc/micro_ecc_lib_nrf51.a
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf51_iar/armgcc'
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf51_keil/armgcc'
Creating library: ../../nrf51_keil/armgcc/micro_ecc_lib_nrf51.lib
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf51_keil/armgcc'
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52hf_armgcc/armgcc'
Creating library: ../../nrf52hf_armgcc/armgcc/micro_ecc_lib_nrf52.a
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52hf_armgcc/armgcc'
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52hf_iar/armgcc'
Creating library: ../../nrf52hf_iar/armgcc/micro_ecc_lib_nrf52.a
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52hf_iar/armgcc'
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52hf_keil/armgcc'
Creating library: ../../nrf52hf_keil/armgcc/micro_ecc_lib_nrf52.lib
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52hf_keil/armgcc'
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52nf_armgcc/armgcc'
Creating library: ../../nrf52nf_armgcc/armgcc/micro_ecc_lib_nrf52.a
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52nf_armgcc/armgcc'
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52nf_iar/armgcc'
Creating library: ../../nrf52nf_iar/armgcc/micro_ecc_lib_nrf52.a
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52nf_iar/armgcc'
make: Entering directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52nf_keil/armgcc'
Creating library: ../../nrf52nf_keil/armgcc/micro_ecc_lib_nrf52.lib
Done
make: Leaving directory `C:/Work/EverAid/BT_SDK/nRF5_SDK_15.3.0_59ac345/external/micro-ecc/nrf52nf_keil/armgcc'

==========================================

Parents Reply Children
No Data
Related