This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

update bootloader from dual bank mode to single bank mode failed in sdk8.0

HI all: Because the application code is relatively small, bootloader is used dual_bank_mode, but now the application code becomes large, OTA can not upgrade, I would like to upgrade to dual_bank_mode until sigle_bank_mode by OTA , but I found it is same dual_bank_mode after upgrading(I had try to used softdevice+bootloader but can't update bootloader,only upgrade bootloader also can't), can I how realized it , I use the SDK 8.1

  • You can convert the dual_bank_bootloader project to single bank by switching dfu_dual_bank.c with dfu_single_bank.c, please see attached pdf.

    DualToSingleBank.pdf

    Please note that when updating the bootloader from dual to single bank you must update the SoftDevice + Bootloader, otherwise it will not work.

    EDIT: The attached image contains the S110 SD+ S110 Single Bank Bootloader and was created with nrfutil from Master Control Panel v3.10 using this command

    nrfutil dfu genpkg s110_sd_sb_bl.zip --softdevice s110_softdevice.hex --bootloader s110_single_bank_bl.hex --application-version 0xFFFFFFFF --dev-revision 0xFFFF --dev-type 0xFFFF --sd-req 0xFFFE
    

    s110_sd_sb_bl.zip

    After the update you can check if the update was sucessful by reading back the data stored at 0x0003F75C using the following command in nrfjprog

    nrfjprog --memrd 0x0003F75C --n 16 --w32
    

    which should display the following in your command window

    0x0003F75C: 676E6953 4220656C 006B6E61 00000002   |Single Bank.....|
    
  • Dear Bjorn,

    Thank you very much for your soon feedback!

    I had try to used SoftDevice + Bootloader(single bank) to update,but not helpful.

    nrf.exe dfu genpkg --softdevice s110_sd.hex --bootloader s110_sbl.hex --application-version 0xFFFFFFFF --dev-type 0xFFFF --dev-revision 0xFFFF --sd-req 0xFFFE s110_sd_sbl.zip

    I had used this command, so, could you tell me this command is right?Thanks!wait your message.

  • Thank you very much,Bjørn!but i am still have some questions 1.I am use Master Control panel v3.9,use this versions to make softdevice+bootloader,it can be update bootloader?
    2.I had used s110_sd_sb_bl.zip to update since your sent to me,but it is same bootloader as before(In the original bootloader program which added some UART print information, print information before and after the update are the same),I don't know why? 3.pls advice me What tools can I use to view the information in 0X0003F75C address? Thank you very much!

  • thank you ,Bjørn Spockeli ,,

    my ladygaga,, It's all my fault ,,I found the problem,,I update application only before,,so ,I shielded the code carelessly #if 1 if (bootloader_dfu_sd_in_progress()) { nrf_gpio_pin_clear(UPDATE_IN_PROGRESS_LED);

        err_code = bootloader_dfu_sd_update_continue();
        APP_ERROR_CHECK(err_code);
    
        ble_stack_init(!app_reset);
        scheduler_init();
    
        err_code = bootloader_dfu_sd_update_finalize();
        APP_ERROR_CHECK(err_code);
    
        nrf_gpio_pin_set(UPDATE_IN_PROGRESS_LED);
    }
    

    #endif

    In a word, Thank you very much!!!!

Related