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

S210 Bootloader

I have a blank nrf51422 that I have successfully loaded with the latest S210 softdevice and working application. However, I do not see the bootloader region occupied when I open NRFgo studio. Am I to assume the bootloader is there? If not can someone point me to where I can get it? I've been searching the forums and have not been successful. I'm trying to make the device DFU. Many Thanks,

Parents
  • No bootloader is present, it must be added from e.g.:

    nordic's nRF51_SDK_v7.2.0_cf547b5.zip\ examples\dfu\experimental_ant_bootloader

    Tested, works together with thisisant's OTA_Updater_v1.1.zip


    Edit 11.5.:

    I'm sure your IRAM1 start address is wrong, because is outside of 32KB range.

    My settings:

    IROM1: start 0x3B800, size 0x4800

    IRAM1: start 0x20002800, size 0x1800 (16KB RAM only, QFAA device)

    Do not forget to set valid ANT-fs network key instead of zeros too.

    When the bootloader is started for the first time (no app valid flag), app must be transferred through OTA DFU. If done successfully, another app OTA DFU can be performed and an old app stays in device until successfull upload. Starting of dual-bank bootloader doesn't overwrite an original. Only updating of softdevice does this job.


    Edit 22.5.

    I was wrong - no special setting is necessary to run app with ANT bootloader from SDK 7.2.0 without OTA DFU:

    1. nrfjprog --recover
    2. nrfjprog --dfu --verify --programs s210_nrf51422_4.0.1_softdevice.hex
    3. nrfjprog --verify --program ANT_S210_app.hex
    4. nrfjprog --verify --program ANT_S210_bootloader.hex

    My settings for nRF51422 QFAA (16KB RAM, 256KB FLASH) is attached:

    image description

    Keil bootloader settings area for ANT bootloader before OTA DFU process:

    image description

    Updated area after OTA DFU:

    image description

  • Thank you, Yes, I was able to find the flag.

    So I worked on this for a few days and still no luck. I switched to the NRF51 dev kit to remove any variables. The device is the QFAC

    Here are the results/settings: I still kept RAM settings for 16K even though the device can handle 32K.

    Application - IROM start 0xD000 Size 0x17400 (also tried 0x2E800) Application - IRAM1 start 0x20000900 Size 0x1700

    Bootloadter - IROM start 0x3B800 Size 0x4800 Bootloader - IRAM1 start 0x20002000 Size 0x1700 (tried with NoInit checked and unchecked)

    Here is what happens (all through SWD since OTA does not work):

    Test1 (using combinations of IROM and IRAM above):

    -Device is totally erased, flashed with S210 4.0.1

    -Application is flashed

    -Bootloader is flashed

    **Result Test 1: Application works fine. Bootloader debug shows application is valid when I force it to run. The OTA does not find the device because there is a valid app running on BANK0 and the bootloader terminates (which is operating as expected.)

    Test2 (using combinations of IROM and IRAM above):

    -Device is totally erased, flashed with S210 4.0.1

    -Bootloader is flashed

    OTA finds device and when an update of application is attempted, it shows that it is completed and updates the image, but debug shows that application is invalid (!!). In other words, OTA seems to work, but application does not run when flashed over OTA and flagged as invalid.

    I can't seem to find why my application is found to be invalid by the bootloader when done through OTA but valid when done through SWD. Any suggestions on where to look? It runs when flashed through SWD but not when flahsed through OTA.

    **Result Test 2: Application does not work.

    Thanks again!

Reply
  • Thank you, Yes, I was able to find the flag.

    So I worked on this for a few days and still no luck. I switched to the NRF51 dev kit to remove any variables. The device is the QFAC

    Here are the results/settings: I still kept RAM settings for 16K even though the device can handle 32K.

    Application - IROM start 0xD000 Size 0x17400 (also tried 0x2E800) Application - IRAM1 start 0x20000900 Size 0x1700

    Bootloadter - IROM start 0x3B800 Size 0x4800 Bootloader - IRAM1 start 0x20002000 Size 0x1700 (tried with NoInit checked and unchecked)

    Here is what happens (all through SWD since OTA does not work):

    Test1 (using combinations of IROM and IRAM above):

    -Device is totally erased, flashed with S210 4.0.1

    -Application is flashed

    -Bootloader is flashed

    **Result Test 1: Application works fine. Bootloader debug shows application is valid when I force it to run. The OTA does not find the device because there is a valid app running on BANK0 and the bootloader terminates (which is operating as expected.)

    Test2 (using combinations of IROM and IRAM above):

    -Device is totally erased, flashed with S210 4.0.1

    -Bootloader is flashed

    OTA finds device and when an update of application is attempted, it shows that it is completed and updates the image, but debug shows that application is invalid (!!). In other words, OTA seems to work, but application does not run when flashed over OTA and flagged as invalid.

    I can't seem to find why my application is found to be invalid by the bootloader when done through OTA but valid when done through SWD. Any suggestions on where to look? It runs when flashed through SWD but not when flahsed through OTA.

    **Result Test 2: Application does not work.

    Thanks again!

Children
No Data
Related