DA16200 Recovery from CRC failure of RTOS image


Module: DA16200 running on the EVK

SDK: 3.2.6

The Scenario (example only):

  1. System is running from Boot index 1
  2. I am upgrading the RTOS 1 and from some reason the upgrade stops. For example power down, lost connectivity, and any other reason.
  3. In the next reboot the chip will still try to run from Boot index 1 but I will get CRC failure and system will remain in boot mode (MROM)

This can happen also if my starting point was boot index 0 and after the failure upgrade I am trying to switch to that boot index 

My problem is that I dont have a way to switch to the other boot index (0 in this example).

The commands in MROM mode do not include the command to change boot index.

Can you suggest a way to recover from this scenario?

  • Hi There,

    Thank you for posting your question online.
    In order to change the boot index you will have to use the following commands:
    [/DA16200] # boot_idx 0 // change boot index from image #1 to image #0
    [/DA16200] # reboot

    Could you share the exact CRC error code you got in order to understand the reason of this crash?
    If you could please share the full logs as well that would be helpful. Are you trying to update the FW with a custom image you have created, with a pre-compiled image we provide?

    Kind Regards,

  • Hi

    1. When I get CRC error I dont have the /DA16200 prompt. Instead I have the /MROM prompt and in that case the boot_idx is not a valid command. My question is how can I switch boot index without that boot_idx command.

    2. As I wrote the CRC error is because the copy of the new image to the flash stopped in the middle. I simulated it simply by closing the tera term in the middle of the copy. I assume it can happen in a real scenario in case someone disconnected the DA16200 from the Host PC.

  • Hi There,

    Thank you for the reply.
    You can find all the available MROM commands on the UM-WI-056, on chapter B3, page:89

    And you can set the address according to the Table 31 so you can change boot index:

    Kind Regards,

  • I ran into this issue, and for some reason still have trouble booting.

    I've used the instructions from UM-WI-056 to ensure the correct RTOS image is at both 0x23000 and 0xx1e2000.

    boot 23000 results in:

    sflash set param fail!!

    [Watch Dog Timer Expired]

    R0 :500b0000, R1 :500b0000, R2 :00000000, R3 :00000000
    R4 :000ae0a0, R5 :00000000, R6 :00000001, R7 :00000000
    R8 :00000001, R9 :00000000, R10 :00000000, R11 :00000000
    R12 :0020f41e, SP :000b5ec0, LR :0008f463, PC :0008f46e
    PSR :41000000, EXC :ffffffed,
    Status Register
    SHCSR :00000000, CFSR :00000000, HFSR :00000000
    DFSR :00000000, MMFAR :e000ed34, BFAR :e000ed38
    AFSR :00000000,
    SICS[0] = 04300000
    SICS[1] = 00000000
    SICS[2] = 00000000
    SICS[3] = 00000000
    SICS[4] = 00000000
    SICS[5] = 015f9522

    Current Thread
    Thread: system_laun
    stack ptr : 000b5e64
    stack base: 000b54b8
    stack end : 000b60b0
    stack high: 000b5e64
    max usage : 0000024d
    suspend : 00000001

    Thread Stack (32)
    [0x000b5e64] : 000BB420 000BE568 00000000 000B5F70 00000000 00000001 00098178 00000000
    [0x000b5e84] : FFFFFFED 00000000 00000000 00000000 00000000 00000000 00000000 500B0000
    [0x000b5ea4] : 500B0000 00000000 00000000 0020F41E 0008F463 0008F46E 41000000 00000000
    [0x000b5ec4] : 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

    boot 1e2000 results in:

    Image Code, CRC Failed (2ea8b512 - eeab05af, 1341552)!!

    Any idea how to recover my device?

  • Hi Optimus,

    Could you please raise a new ticket regarding this issue and share more information?
    Is this one of our EVKs or a custom board?
    Which image did you try to flash on the board? Did you make any modifications on the SDK or did you try the pre-compiled images?

    Best Regards,

  • I'll raise the ticket.
    board is the DA16200MOD-evk v 11.0

    only used the precompiled image, DA16200_IMG_FreeRTOS_ATCMD_QFN_v3.2.7.1_4MB