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

Check application is correct after OTA update

Hi, I performed an OTA update of my APP. (SD 7.0 and BLE single bank bootloader were flashed). The update finished without an error and then my application even starts, but once I press some buttons to interact application freezes (i have a small screen for outputs).

If I try to start debug in Keil - it just hangs. So the question is what could be wrong and how could i check that my application is doing what its supposed to do? Or may be I did something wrong when placing bootloader?

EDIT: Just noticed that app_gpiote doesnt work when I have bootloader flashed.

Thanks!

  • You might have better luck w/ the debugger if you attach it before you start the OTA update process, such that it is already attached by the time the freeze occurs. Your symptoms sound like a hard fault, but it's impossible to say without more info.

  • Yeah it seems not connected with the update. If I flash SD+APP+BL altogether the same thing happens, but if I only flash SD+APP it works correctly.

    So I have a feeling that GPIOTE interrupts are not working when I have BL flashed. For the record Im not using SD in my APP, only need it for OTA update.

    Im not sure though how I can debug an APP when I have a BL in Keil?

  • You can debug everything in Keil, you just may not have symbols loaded for the offending piece of code at the time of the failure, so all you'll see is the disassembly if that's the case.

    Basically you have 4 programs you are debugging at the same time: the SoftDevice, your old application before the update, the bootloader, and the new application after the update. If you suspect the problem occurs once the new application starts running, then flash the SD+old app+BL project, load the Keil project for the new application, attach the debugger, and allow the update process to run until the issue occurs. Then you just press pause in the debugger, and you should be stopped where the problem occurs.

  • @Sergey: Could you send us your BLE single bank bootloader ? Did you use this one on github ?

    Do you have the same problem if testing with our stock example (dual bank ble) in the SDK ?

    I suspect that the interrupts haven't been forwarded properly.

  • Hung, Im using the one from github indeed. Just commented out all the led operations.

    I think its something with compiler. It produces different results. I can write a program - compile it and it doesnt work, then I comment out some functions, compile and remove comments compile again and it works. So not sure what it was, but now everything works just fine...

Related