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

After updating the software with nRFtoolbox, my device doesn't advertising.

I am working with the secure bootloader example. I copied the firmware zip package to my phone. It contains only application.hex in the package, ​there is no softdevice or bootloader. the software package is installed on my device but afterwards it doesn't advertising. however, it works fine when I install software via the computer using the nRF connect application.

1)After loading the softdevice and application into nrf52 with nRFconnect on the computer, the flash memory image is as follows:

2)After loading the softdevice and bootloader into nrf52 with nRFconnect on the computer, the flash memory image is as follows:

3)This is the flash image after loading the application.hex file with nRFtoolbox.

I think there is a problem after installing softdevice and bootloader and softdevice is corrupted. or there is another problem. What could be the problem I'm having?

  • Hi.
    I could not take care of this problem for a long time due to my busy schedule. now I am dealing with this problem again.

    I checked what you said.

    nrf_bootloader_init() -> nrf_bootloader_fw_activate() which returns ACTIVATION_NONE, due to your log (Can you check whether the switch (p_bank->bank_code) case is NRF_DFU_BANK_INVALID or something else?)

    p_bank->bank_code value is 0x00000000.

    Then when nrf_bootloader_init() returns ACTIVATION_NONE, it should call dfu_enter_check(). Does this return? Is it called?

    Yes, I put a breakpoint there. Calling dfu_enter_check () function after ACTIVATION_NONE.

  • <error> app: Received a fault! id: 0x00004002, pc: 0x00000000, info: 0x2000FFB8

    The fault id indicates that an NRF_FAULT_ID_SDK_ASSERT has occurred somewhere in your code. I'm not sure why this would happen upon connection, but you can read out the assert_info_t struct stored at 0x2000FFB8 to find the line number and file name of where occurred. 

    E.g.,

    assert_info_t * p_info = (assert_info_t *) 0x2000FFB8 ;
    NRF_LOG_ERROR("ASSERTION FAILED at %s:%u",
    p_info->p_file_name,
    p_info->line_num);

    -Amanda H.

Related