AnsweredAssumed Answered

STM32F42xx/3xx USB device DFU within a program

Question asked by Rogovin.Dan on Feb 21, 2016
Latest reply on Feb 25, 2016 by Rogovin.Dan

We are working on a migration from the TI Stellaris products to the STM32F42xx.  The one thing I haven't been able to find yet is a way to duplicate how we allow firmware upgrades.  We use the USB-device port to run the DFU protocol.

Is there a way to jump to the bootloader from the application running on the micro?  In other words:
  • Bootloader is at location 0x0800 0000.
  • Application is at location 0x080C 0000.
  • Within the application is a function that--   
    • Resets the micro,
    • Jumps to the bootloader, and
    • Starts it in a way that simulates that no application is installed.
The USB-device DFU example provided by ST only allows overwriting an application by performing an action (pressing a button) on starting up the bootloader.  What would be the cleanest way to start the bootloader from the application to allow overwriting of the application?  Maybe set a bit that's read by the bootloader?