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

what time and how to modified address of (NRF_UICR_BASE + 0x14) by bootloader?

Hi

  Recently I attempted to modify the bootloader.When download the official bootloader, it could modify the value of (NRF_UICR_BASE+0x14).But if I Remove some code,when download, the value will not be  modified. Both are programmed with nrfjprog.exe. 

  I think the value of (NRF_UICR_BASE+0x14) is modified by nrfjprog.exe, but it is not the case.

Anybody know how it modify the value of (NRF_UICR_BASE+0x14) ??

Parents
  • The bootloader start address must be set correctly in NRF_UICR_BASE+14 (define NRF_UICR_BOOT_START_ADDRESS), which is set in file bootloader_util_arm.c by global variable m_uicr_bootloader_start_address. It is needed to download the .hex file using nrfjprog, as the RAM flashing algorithm in Keil does not allow writing to NRF_UICR_BASE.

    If you have modified these variables, or using another flashing tool than nrfjprog, or porting the code to another compiler, you may have issues with this specific parameter.

    To ensure that this area is written properly, you can execute this command:

    nrfjprog --memrd 0x10001014
    
Reply
  • The bootloader start address must be set correctly in NRF_UICR_BASE+14 (define NRF_UICR_BOOT_START_ADDRESS), which is set in file bootloader_util_arm.c by global variable m_uicr_bootloader_start_address. It is needed to download the .hex file using nrfjprog, as the RAM flashing algorithm in Keil does not allow writing to NRF_UICR_BASE.

    If you have modified these variables, or using another flashing tool than nrfjprog, or porting the code to another compiler, you may have issues with this specific parameter.

    To ensure that this area is written properly, you can execute this command:

    nrfjprog --memrd 0x10001014
    
Children
No Data
Related