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

What are the test images for single bank update?

Hi all,

I want to know if the images inside the hci_dfu_send_hex folder are just precompiled hex files from the examples.

More specific I want to use the bootloader from SDK11 but it doesn't seem that the project example and this test images are the same.

From which project example this images are created? Or if there is any difference between the projects and the test images?

Thank you for the help

  • Hi JCosta,

    I assume you switch to bootloader mode before you test on step 4 ? (press button 4 and reset)

    Could you list the scripts you used to generate the .zip files ?

    Could you list the script you used to generate hex

  • Yes, I switch to bootloader mode. I do the same when loading the application.

    The command I use to create the zip is : nrfutil.exe dfu genpkg [path of the zip] --sd-req 0xFFFE --application-version 0 --dev-type 0 --dev-revision 0 --bootloader [path of the bootloader]

    For DFU : nrfutil.exe dfu serial --package=[path of zip] --port=COM6 --baudrate=38400 --flowcontrol

    My board is connected to port COM6 and is using flowcontrol with baudrate of 38400.

    To create the hex files I use KEIL and just build the codes with optimization -O3, I don't know if you need more specifics for this.

    My point is that the only thing I cannot load via serial DFU is the bootloader, and I am not sure why. At your side you can load the single bank bootloader via serial DFU?

  • I tested here with your script and have no problem updating the bootloader. Are you testing with our nRF51 DK or your own PCB board ? Do you have 32kHz crystal on the board ? I attached the bootloader hex and .zip file in my answer above so you can test on your side.

  • I am testing with the nrf51 DK, I will try with your files then and see if it works here.

  • I found out what was causing this.

    I changed in the bootloader_settings.c file the line 19 to uint8_t m_boot_settings[CODE_PAGE_SIZE] __attribute__((at(BOOTLOADER_SETTINGS_ADDRESS))) __attribute__((used)) = {BANK_VALID_APP};

    This change was to use this code on the new board since I was seeing that the code was not going through on the file "bootloader.c" in line 114 if (p_bootloader_settings->bank_0 == BANK_VALID_APP)

    And this was suggested in this answer

    Can you help me on this? If I reverse this change it works on the nrf51 but not on my custom board. Thank you for the help so far.

Related