I would like to using Keil to build secure_bootloader project for changing NRF_DFU_BLE_REQUIRES_BONDS from 0 to 1. But Keil failed to build. Please refer to snapshot of Keil.
I would like to using Keil to build secure_bootloader project for changing NRF_DFU_BLE_REQUIRES_BONDS from 0 to 1. But Keil failed to build. Please refer to snapshot of Keil.
A description on how to update to new MDK (device family pack) in Keil for older nRF5 SDK is described here:
RE: MDK uVision SDK 16.0 keil Family Pack Installation
Kenneth
A description on how to update to new MDK (device family pack) in Keil for older nRF5 SDK is described here:
RE: MDK uVision SDK 16.0 keil Family Pack Installation
Kenneth
Thanks for your support! I have solved Keil Family Pack installation issue. Now Keil complains can't find nrf52_erratas.h and uECC.h. Do I miss something?
Rebuild started: Project: secure_bootloader_ble_s132_pca10040
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'd:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'nrf52832_xxaa_s132'
compiling dfu_public_key.c...
..\..\..\dfu_public_key.c(20): error: #35: #error directive: "Debug public key not valid for production. Please see github.com/.../README.md to generate it"
#error "Debug public key not valid for production. Please see github.com/.../README.md to generate it"
..\..\..\dfu_public_key.c: 0 warnings, 1 error
compiling nrf_bootloader_app_start.c...
compiling ble_srv_common.c...
compiling boards.c...
compiling nrf_bootloader_app_start_final.c...
compiling nrf_bootloader_dfu_timers.c...
compiling main.c...
compiling nrf_crypto_ecdsa.c...
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.h(52): error: #5: cannot open source input file "uECC.h": No such file or directory
#include "uECC.h"
..\..\..\..\..\components\libraries\crypto\nrf_crypto_ecdsa.c: 0 warnings, 1 error
compiling nrf_bootloader.c...
compiling nrf_crypto_ecc.c...
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.h(52): error: #5: cannot open source input file "uECC.h": No such file or directory
#include "uECC.h"
..\..\..\..\..\components\libraries\crypto\nrf_crypto_ecc.c: 0 warnings, 1 error
compiling nrf_crypto_init.c...
compiling nrf_crypto_hash.c...
compiling nrf_crypto_shared.c...
compiling nrf_bootloader_info.c...
compiling oberon_backend_ecc.c...
compiling nrf_bootloader_wdt.c...
compiling nrf_bootloader_fw_activation.c...
compiling oberon_backend_ecdh.c...
compiling oberon_backend_ecdsa.c...
compiling oberon_backend_eddsa.c...
compiling micro_ecc_backend_ecdh.c...
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.h(52): error: #5: cannot open source input file "uECC.h": No such file or directory
#include "uECC.h"
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecdh.c: 0 warnings, 1 error
compiling micro_ecc_backend_ecdsa.c...
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.h(52): error: #5: cannot open source input file "uECC.h": No such file or directory
#include "uECC.h"
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecdsa.c: 0 warnings, 1 error
compiling dfu-cc.pb.c...
compiling oberon_backend_chacha_poly_aead.c...
compiling micro_ecc_backend_ecc.c...
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.h(52): error: #5: cannot open source input file "uECC.h": No such file or directory
#include "uECC.h"
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.c: 0 warnings, 1 error
compiling oberon_backend_hmac.c...
compiling oberon_backend_hash.c...
compiling nrf_sw_backend_hash.c...
compiling nrf_dfu.c...
compiling nrf_dfu_flash.c...
compiling nrf_dfu_ble.c...
compiling nrf_dfu_handling_error.c...
compiling nrf_dfu_req_handler.c...
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.h(52): error: #5: cannot open source input file "uECC.h": No such file or directory
#include "uECC.h"
..\..\..\..\..\components\libraries\bootloader\dfu\nrf_dfu_req_handler.c: 0 warnings, 1 error
compiling nrf_dfu_mbr.c...
compiling nrf_dfu_settings.c...
compiling nrf_dfu_settings_svci.c...
compiling nrf_dfu_transport.c...
compiling nrf_dfu_utils.c...
compiling nrf_dfu_validation.c...
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.h(52): error: #5: cannot open source input file "uECC.h": No such file or directory
#include "uECC.h"
..\..\..\..\..\components\libraries\bootloader\dfu\nrf_dfu_validation.c: 0 warnings, 1 error
compiling nrf_dfu_ver_validation.c...
..\..\..\..\..\components\libraries\crypto\backend\micro_ecc\micro_ecc_backend_ecc.h(52): error: #5: cannot open source input file "uECC.h": No such file or directory
#include "uECC.h"
..\..\..\..\..\components\libraries\bootloader\dfu\nrf_dfu_ver_validation.c: 0 warnings, 1 error
compiling nrf_nvmc.c...
compiling app_error_weak.c...
compiling nrfx_atomic.c...
compiling app_scheduler.c...
compiling nrf_assert.c...
compiling app_util_platform.c...
compiling crc32.c...
compiling nrf_atomic.c...
compiling nrf_atfifo.c...
compiling mem_manager.c...
compiling nrf_balloc.c...
compiling nrf_fprintf.c...
compiling nrf_fprintf_format.c...
compiling nrf_queue.c...
compiling nrf_fstorage.c...
compiling nrf_memobj.c...
compiling nrf_fstorage_sd.c...
compiling nrf_fstorage_nvmc.c...
compiling nrf_section_iter.c...
compiling nrf_ringbuf.c...
compiling nrf_log_str_formatter.c...
compiling nrf_strerror.c...
compiling nrf_log_frontend.c...
compiling nrf_dfu_svci.c...
compiling sha256.c...
compiling pb_common.c...
assembling arm_startup_nrf52.s...
compiling pb_decode.c...
compiling nrf_svc_handler.c...
compiling system_nrf52.c...
RTE\Device\nRF52832_xxAA\system_nrf52.c(30): error: #5: cannot open source input file "nrf52_erratas.h": No such file or directory
#include "nrf52_erratas.h"
RTE\Device\nRF52832_xxAA\system_nrf52.c: 0 warnings, 1 error
compiling nrf_sdh_soc.c...
compiling nrf_sdh.c...
compiling nrf_dfu_svci_handler.c...
compiling nrf_sdh_ble.c...
".\_build\nrf52832_xxaa_s132.axf" - 10 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:10
Hello,
I suggest you first compile some other example (e.g. try blinky) instead of the bootloader to ensure that you understand how to update the device family pack as linked. Make sure you follow the entire description and also check out the pdf document you can find in my linked reply. Did you for instance follow the description: "Perform following steps to remove redundant include path" I believe your error with "nrf52_erratas.h" is because you have not followed the entire description.
Your second problem is related to uECC, and is required by the secure bootloader as described in the documentation:
https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/lib_bootloader_modules.html
https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/ble_sdk_app_secure_bootloader.html
Best regards,
Kenneth