ROM bootloader hangup

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ROM bootloader hangup

577 Views
wimdekimpe
Contributor I

In a project using the KL03 controller, we sometimes come in a situation where the ROM boot loader seems to be stuck after a wrong frame was sent to it. This could be the case for example, when the host, which uses the same UART for the normal functional command interface, gets confused about the state at which the controller is in, and sends it an application frame rather than a boot loader frame.

 

However, the host has no means to reset the controller, except via the reset command. So no power cycling of the KL03 controller, no reset line.

So, when in application, the host can send an application command which will make the controller jump to boot loader, and the other way around, when firmware update of the controller was finished, it sends the bootloader reset command, and the controller will switch back to the application. If all goes right...

 

My question now: is there some way for the host to make the bootloader on the controller to recover from getting stuck, other than resetting or power cycling the controller? Is there some timeout mechanism in the bootloader protocol that I can use to force the protocol back into sync? Some magic combination on the UART pins or something?

 

And what about the watchdog timer: does the ROM bootloader disable the watchdog timer?

Labels (1)
0 Kudos
2 Replies

398 Views
Kan_Li
NXP TechSupport
NXP TechSupport

Hi Wim Kimpe,

I am sorry, but I am curious about the scenario of the case that you mentioned. Do you mean the blhost sent command during incoming data phase as below?

pastedImage_0.png

Thanks for your patience!


Have a great day,
Kan

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

398 Views
wimdekimpe
Contributor I

Kan

I do not use blhost, but implemented the boot loader data flow as described above in a master host microcontroller next to the KL03.

And yes, by mistake I send a wrong packet over the UART interface in the middle of the transaction, so half of the code was sent, and then an application packet in a different format was transferred over the UART by mistake.

What will happen then? Will the packet be discarded and just await a new packet from the host?

How can I make a clean start?

0 Kudos