AnsweredAssumed Answered

STM32F427 USB DFU DEMO PROJECT

Question asked by Stefano Fante on Aug 4, 2017
Latest reply on Aug 4, 2017 by Imen D

Hi, the STM32F427 has 256KB ram.

In the file  USB_Device/DFU_Standalone/Src/main.c

/* Test if user code is programmed starting from USBD_DFU_APP_DEFAULT_ADD address */
if(((*(__IO uint32_t*)USBD_DFU_APP_DEFAULT_ADD) & 0x2FFE0000 ) == 0x20000000)
{
/* Jump to user application */
JumpAddress = *(__IO uint32_t*) (USBD_DFU_APP_DEFAULT_ADD + 4);
JumpToApplication = (pFunction) JumpAddress;

/* Initialize user application's Stack Pointer */
__set_MSP((*(__IO uint32_t*) USBD_DFU_APP_DEFAULT_ADD ));
JumpToApplication();
}

the boot fail at the BOLD line.

If the initial stack pointer is located in a position greater than 64K the IF fail.

I think that for a microcontroller with 256KB of ram the condition shold be:

 

if (((*(__IO uint32_t*)USBD_DFU_APP_DEFAULT_ADD) & 0x2FFC0000 ) == 0x20000000)

 

Do you have any comment?

Outcomes