Skip to main content
FKwan
Associate
Jul 28, 2020 7:32 PM UTC
Solved

DFU example for Application

I want to test out the DFU on STM32F429ZI-Nucleo

I have located the Boot loader project.

STM32F429ZI-Nucleo\Applications\USB_Device\DFU_Standalone

In order to have this Bootloader Jump into the App. Do I simply change the

FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K

of any STM example ?

or there is more to it ?

This topic has been closed for replies.
FKwan
FKwanBest answer
Associate
Jul 28, 2020 9:33 PM UTC

Thanks. Found it "VECT_TAB_OFFSET", change this to match FLASH, it works now.

4 replies

Tesla DeLorean
Guru
Jul 28, 2020 8:07 PM UTC

Well you'd want to shrink the size of the loader, and advance the origin on the application, so there is a suitable split between them.

On the app side you'd need to fix up the vector table address set into SCB->VTOR to match the new origin.

The new origin should be on a flash sector boundary, which will also be on a 512-byte boundary in this case, which is what the VTOR register needs.

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
FKwan
FKwanAuthor
Associate
Jul 28, 2020 9:07 PM UTC

I updated the ld file for memory

FLASH (rx)   : ORIGIN = 0x8008000, LENGTH = 2016K

But I could not find where to change the "vector table address set into SCB->VTOR"

Tesla DeLorean
Guru
Jul 28, 2020 9:10 PM UTC

Usually SystemInit() in system_stm32f4xx.c, or grep

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
FKwan
FKwanAuthorBest answer
Associate
Jul 28, 2020 9:33 PM UTC

Thanks. Found it "VECT_TAB_OFFSET", change this to match FLASH, it works now.