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

OTA DFU bootloader

I am having some success with custom hardware running an OTA DFU bootloader from the SDK17 by Hung Bui March 2017 within a nRF52832. I utilize the bootloader to program the ble_app_uart into the hardware and things work as expected. I do have trouble when I load an app with no soft device. It appears to load but will not run the app that runs the display, just hangs. The tutorial describes how to perform a zip of the application, but the description has a option with the softdevice, but the application has no SD.

Can the bootloader program an application without an SD and run the application without problems?

Parents
  • You need to modify the linker script/settings for the application.

    Reason: The SD has to stay in place - otherwise the OTA DFU bootloader won't work. Thus the application has to occupy the flash area after the SD. You also need to reserve a small amount of RAM (8 bytes IIRC) for the Softdevice - even when it is disabled - in order to use interrupt forwarding.

    An unmodified app would occupy the space for the SD in flash - this should be rejected in the bootloader logic. And no, cannot run a statically linked app from a flash address other than it was linked to.

  • Thank you, I develop with visual code and command line tools, I apologize for not including it in my original post. I use the makefile inside the armgcc folder of the projects. When following a recipe on how to do things, as in Hung Bui's, there is no information on the design or development of the project itself and is quite abstract. It ok to be abstract when everything just works but when it does not, fine detail on the design and development is needed.

    Is there a detailed and comprehensive explanation of the bootloader design?

Reply
  • Thank you, I develop with visual code and command line tools, I apologize for not including it in my original post. I use the makefile inside the armgcc folder of the projects. When following a recipe on how to do things, as in Hung Bui's, there is no information on the design or development of the project itself and is quite abstract. It ok to be abstract when everything just works but when it does not, fine detail on the design and development is needed.

    Is there a detailed and comprehensive explanation of the bootloader design?

Children
No Data
Related