Skip to main content
Visitor II
August 25, 2020
Question

Hello guys, I am on project that requires over the air firmware update Is there any guide+firmware for this task (eg from CUBEMX)?

  • August 25, 2020
  • 3 replies
  • 1531 views

I am using Nucleo-f446re and communicate with a server trought a GPRS telematic device ( the communication with the telematic device is through uart protocol). My average firmware size is 35kB. I can safely transmit the hex file to the MCU but I need a solution so that the MCU starts from the new firmware after restart.

    This topic has been closed for replies.

    3 replies

    Graduate II
    August 25, 2020

    Not sure there is a full worked solution.

    Here there should be enough space flash to stage bew firmware and have a small boot loader. Boot loader sits up front of flash, is never erased, and can recognize new firmware image is present. Updates current before jumping to it. Checks integrity of current before jumping.

    CPU can reset via NVIC_SystemReset type call. Can initiate after successful staging of new image.​

    stathpaleAuthor
    Visitor II
    August 25, 2020

    My MCU does not support dual bank mode. And I cant find any functinality of the bootloader to do the job you are describing (AN2606 page 165). Are you sure what you are saying is possible on stm32f446re ? Thanks in advance

    Graduate II
    August 25, 2020

    It doesnt need to dual bank, you've got multiple flash sectors you can use. You can stage new firmware in spare sectors before moving to final destination.

    I'm referring to your own boot loader, not the ROM system loader.​

    stathpaleAuthor
    Visitor II
    August 25, 2020

    Thanks for your reply. I Have read the application note 2606 about the bootloader and I can't find a way to configure it to boot from the new firmware that already exists on the flash. It only has solutions for getting new firmware through communication interface.

    Super User
    August 25, 2020

    If you can use the built-in bootloader, erase the flash, write a new program, and jump to it.

    If the built-in bootloader won't work, you'll need to create your own solution.

    >  I can't find a way to configure it to boot from the new firmware that already exists on the flash

    The GO command can be used to jump to user code once written.

    stathpaleAuthor
    Visitor II
    August 25, 2020

    Thank you for your reply. The version of the bootloader that my mcu has cannot do that job.

    I will have to create my own solution.