Hi, everyone,
We are developing project on nRF52832 by using the newest 15.3 version (nRF5_SDK_15.3.0_59ac345). The project is built from bootloader and main application. The bootloader is created from example that exists in folder “E:\Nordic\nRF5_SDK_15.3.0_59ac345\examples\dfu\secure_bootloader\pca10040_ble”. The development is prepaired in Visual Studio Visual GDB environment that uses the GCC compiler. Due to this version we migrate the example taken from “E:\Nordic\nRF5_SDK_15.3.0_59ac345\examples\dfu\secure_bootloader\pca10040_ble\arm5_no_packs” folder. Similarly as in one of the previous versions (version nRF5_SDK_15.0.0_a53641a), in the project we replace “E:\Nordic\nRF5_SDK_15.3.0_59ac345\external\micro-ecc\nrf52hf_keil\armgcc\ micro_ecc_lib_nrf52.lib” file to “E:\Nordic\nRF5_SDK_15.3.0_59ac345\external\micro-ecc\nrf52hf_armgcc\armgcc\ micro_ecc_lib_nrf52.a”. In difference to previous 15.0 version in this project exists the “E:\Nordic\nRF5_SDK_15.3.0_59ac345\external\nrf_oberon\lib\cortex-m4\hard-float\short-wchar\oberon_2.0.7.lib” file. We replace it with the “E:\Nordic\nRF5_SDK_15.3.0_59ac345\external\nrf_oberon\lib\cortex-m4\hard-float\short-wchar\liboberon_2.0.7.a”.
But although the project is built correctly without any error, the flashed program to the module doesn’t start working.
We tried to look to the linkerscript. The difference to the previous versions was in the next two lines:
“uicr_bootloader_start_address (r) : ORIGIN = 0x00000FF8, LENGTH = 0x4 ” and
“uicr_mbr_params_page (r) : ORIGIN = 0x00000FFC, LENGTH = 0x4” in 15.3 versions
In comparison to next two lines
“uicr_bootloader_start_address (r) : ORIGIN = 0x10001014, LENGTH = 0x4” and
“uicr_mbr_params_page (r) : ORIGIN = 0x10001018, LENGTH = 0x4” in 15.0 version.
The origin definitions “0x00000FF8” and “0x00000FFC” caused to compiler overwrite the cluster with the softdevice because these to addresses were written to one of the soft-dev clusters. Due to this reason we tried to burn the project by merging it with soft-dev-.hex file by the “nRF Connect \ Programmer” program. The Keil-made-project worked in this case perfectly, while the GDB_GCC-made-project didn’t work at all.
We tried to redefine the “0x00000FF8” and “0x00000FFC” addresses to the “0x10001014” and “0x10001018” ones accordingly like in 15.0 version. But although the BLE-Soft-Device wasn’t overwritten at all the project didn’t want to start working anyway.
What wrong was done or what wasn’t done correctly in the migration?
Best Regards
Boris Fridman