Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

When compiling the bootloader for nRF52840, NRF_BPROT references fail.

Hi there,

I am porting existing code from nRF52832 to nRF52840, and found that bootloader references to NRF_BPROT fail:

...
Compiling file: nrf_bootloader_app_start_final.c
../../nRF5_SDK_15.0.0_a53641a/components/libraries/bootloader/nrf_bootloader_app_start_final.c: In function 'nrf_bootloader_flash_protect':
../../nRF5_SDK_15.0.0_a53641a/components/libraries/bootloader/nrf_bootloader_app_start_final.c:194:17: error: 'NRF_BPROT' undeclared (first use in this function)
                 NRF_BPROT->CONFIG0 = mask;
                 ^~~~~~~~~
../../nRF5_SDK_15.0.0_a53641a/components/libraries/bootloader/nrf_bootloader_app_start_final.c:194:17: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [../../nRF5_SDK_15.0.0_a53641a/components/toolchain/gcc/Makefile.common:272: _build/Doorlock/nrf_bootloader_app_start_final.c.o] Error 1
make[1]: Leaving directory '/home/me/my_sources/my_repo/Bootloader'

Apparently becuse the nrf52840.h in the mdk does not define them:

$ grep -rnHEe 'NRF_BPROT' ../nRF5_SDK_15.0.0_a53641a/
../nRF5_SDK_15.0.0_a53641a/modules/nrfx/mdk/nrf52810.h:429:} NRF_BPROT_Type;
../nRF5_SDK_15.0.0_a53641a/modules/nrfx/mdk/nrf52810.h:1494:#define NRF_BPROT_BASE                  0x40000000UL
../nRF5_SDK_15.0.0_a53641a/modules/nrfx/mdk/nrf52810.h:1539:#define NRF_BPROT                       ((NRF_BPROT_Type          *) NRF_BPROT_BASE)
../nRF5_SDK_15.0.0_a53641a/modules/nrfx/mdk/nrf52.h:543:} NRF_BPROT_Type;
../nRF5_SDK_15.0.0_a53641a/modules/nrfx/mdk/nrf52.h:1954:#define NRF_BPROT_BASE                  0x40000000UL
../nRF5_SDK_15.0.0_a53641a/modules/nrfx/mdk/nrf52.h:2025:#define NRF_BPROT                       ((NRF_BPROT_Type          *) NRF_BPROT_BASE)
../nRF5_SDK_15.0.0_a53641a/modules/nrfx/mdk/nrf51_to_nrf52.h:135:#define NRF_MPU     NRF_BPROT
../nRF5_SDK_15.0.0_a53641a/components/libraries/bootloader/nrf_bootloader_app_start_final.c:194:                NRF_BPROT->CONFIG0 = mask;
../nRF5_SDK_15.0.0_a53641a/components/libraries/bootloader/nrf_bootloader_app_start_final.c:197:                NRF_BPROT->CONFIG1 = mask;
../nRF5_SDK_15.0.0_a53641a/components/libraries/bootloader/nrf_bootloader_app_start_final.c:200:                NRF_BPROT->CONFIG2 = mask;
../nRF5_SDK_15.0.0_a53641a/components/libraries/bootloader/nrf_bootloader_app_start_final.c:203:                NRF_BPROT->CONFIG3 = mask;

Any isea about what is the right thing to do here?

Related