Hello World, Unable to find bootable image

I notice a problem with the MCUboot Hello World example.

I followed the steps mentioned in https://www.mcuboot.com/documentation/readme-zephyr/
That is, build the MCUBoot application with VSCode and nRFconnect 2.0.0 and flashed the hex-file to the nRF52840 DK with the nRF Programmer V3.0.3.
Address range is 0x00000000-0x00008247.
The build the Hello World example from mcuboot\samples\zephyr\hello-world  and flashed the hex-file to the nRF52840 DK. 
Address range is 0x0000C200-0x00011AEB.
After a reset I see the following in the terminal:

*** Booting Zephyr OS build v3.0.99-ncs1 ***
I: Starting bootloader
I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
I: Boot source: none
W: Failed reading image headers; Image=0
E: Unable to find bootable image

What could be the problem here?

  • Hi, 

    flashed the hex-file to the nRF52840 DK with the nRF Programmer V3.0.3.

    Do you flash the merged.hex under build\zephyr?

    Why don't you use VScode flashing images to DK?

    Regards,
    Amanda

  • Hi Amanda,

    My goal was to have a separate mcuboot application and a hello world.
    I flashed the mcuboot with jflash tool and the added the hello world to this. 
    I noticed I used the wrong file. With app_signed.hex it seems to work.

    Next step is to have the mcumgr tool working.
    I was able to get the smp_svr and the mcuboot on the nRF52840 DK. I was now able to connect to the smp_svr on my DK board with mcumgr tool and upload a new version of the hello world to the DK board.

    Images:
     image=0 slot=0
      version: 0.0.0
      bootable: true
      flags: active confirmed
       hash: 7634bdf62484929dc0a73e3394e2498563edd0e50570abac986e04a7d069cd85
     image=0 slot=1
       version: 0.0.0
       bootable: true
       flags:
       hash: f09346c76e1b00fff7a52e09da1c082382abc9043f868fecf0190be32c49e5eb
    Split status: N/A (0)

    So (if I am correct) I have a:

    -hello world
    -smp_svr 
    -bootloader

    on the DK board.

    Next step was mcumgr -c acm0 image test 486534d1ef9ad697fc5b3b3596aa6e35b0e6b4fe6cf3ae9349c916e08b6a1e11
    According to the steps in https://docs.zephyrproject.org/latest/services/device_mgmt/mcumgr.html slot 1 should be 'confirmed', however it is still pending, also after a reboot.
    Images:
      image=0 slot=0
       version: 0.0.0
       bootable: true
       flags: active confirmed
       hash: 7634bdf62484929dc0a73e3394e2498563edd0e50570abac986e04a7d069cd85
      image=0 slot=1
       version: 0.0.0
       bootable: true
       flags: pending
       hash: 486534d1ef9ad697fc5b3b3596aa6e35b0e6b4fe6cf3ae9349c916e08b6a1e11
    Split status: N/A (0)

    Did I miss something here?

  • Hi, 

    Sorry for the late reply. During the summer holidays in Norway, our support staff is less than usual.

    Do you run imgtool verify as the suggestion in the Tip section?

    Since the doc and MCUmgr are developed by Zephyr, I would suggest seeking help from Zephyr Discord.

    -Amanda 

Related