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

Application firmware is around 200ms slower to start after a bluetooth DFU

Hi,

 I found that after a DFU my application is slower to start up by about 200ms. However when programmed initially (via a physical connection) its fine. Its only after the DFU (with the same firmware there is a problem).

 I toggled some lines to find out where the delay appears to be. The bootloader is starting immediately after power up but the program start is delayed.

 I've tried it with the LF RC in case and it made no difference.

 BTW my firmware image contains the applcation and softdevice.

 This 200ms delay is causing me issues so I need to find a solution.

kind regards

Liam

  • Hi Amanda,

    It appears to me when the softdevice is updated over the DFU the range of addresses checked is extended to include it.

    I don't know why NRF_POWER_RESETREAS_OFF_MASK is not being returned - the device is definitely being powered up from off. Is it expected the CRC should only be checked immediately after a DFU not every power up (as appears to be the case here)?

    These are my settings

    nrfutil settings display SimRDS200_V2_01.hex

    Bad access at 0x7F000: not enough data to read 4 contiguous bytes

     Bootloader DFU Settings:

    * File:                     SimRDS200_V2_01.hex

    * Family:                   NRF52840

    * Start Address:            0x00000000

    * CRC:                      0x3CAB1BC1

    * Settings Version:         0x00000001 (1)

    * App Version:              0x00000001 (1)

    * Bootloader Version:       0x00000001 (1)

    * Bank Layout:              0x00000000

    * Current Bank:             0x00000000

    * Application Size:         0x00014C0C (85004 bytes)

    * Application CRC:          0x79B2BCC7

    * Bank0 Bank Code:          0x00000001

    * Softdevice Size:          0x00000000 (0 bytes)

    * Boot Validation CRC:      0x00000000

    * SD Boot Validation Type:  0x00000000 (0)

    * App Boot Validation Type: 0x00000000 (0)

     

    Generated by

    nrfutil settings generate --family NRF52840 --application %APPLICATION_HEX_PATH% --application-version 1 --bootloader-version 1 --bl-settings-version 1 %SETTINGS_HEX% >nul 2>nul

    So is it possible to stop the CRC checking of the soft device using this command? and is it desirable in a production setting?

    regards

    Liam

  • Hi Liam,

    Liam said:
    Is it expected the CRC should only be checked immediately after a DFU not every power up (as appears to be the case here)?

    The bootloader will check CRC after reboot.  

    Liam said:
    is it possible to stop the CRC checking of the soft device using this command?

    Yes, you can generate the setting with the config --sd-boot-validation NO_VALIDATION. 

    -Amanda H.

  • If I set  --sd-boot-validation NO_VALIDATION will the softdevice still get CRC checked after a DFU update that includes a softdevice? But once its passed that it won't be checked again?
     
    regards
    Liam
Related