cancel
Showing results for 
Search instead for 
Did you mean: 

DFU standalone doesn't work

vbruno1
Associate III
Posted on June 10, 2016 at 12:29

I use IAR EW 7.1, HAL driver and STM3210E_EVAL.

I would use the application DFU andlike user application CDC_standalone.

I've used like configuration for CDC_standalone

#define VECT_TAB_OFFSET 0x7000

and

I'm changed the value in the Linker of the Vector Table in0x08007000

and range of ROM, start is0x08007000 and end is0x08080000.

This, because in DFU application is defined

/* Test if user code is programmed starting from address 0x08007000 */

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();

}

} and is defined

#define USBD_DFU_APP_DEFAULT_ADD 0x08005000 /* Start user code address: ADDR_FLASH_PAGE_10 */

#define USBD_DFU_APP_END_ADD 0x080FF800 /* Start address of latest flash page: ADDR_FLASH_PAGE_511 */

I've generated file.bin for DFU file manager.

I've used

VENDOR ID 0x0483

Product ID 0xDF11

as defined in DFU application

#define USBD_VID 0x0483

#define USBD_PID 0xDF11

I've used Target ID 00 and as Address start in Multi Bin injection 08007000, thus I've generated file.dfu.

So, with DFUSEDemo I've upgrade file.dfu on board.

But does't work.

Thank's a lot foryour advices.

1 REPLY 1
vbruno1
Associate III
Posted on June 10, 2016 at 14:09

I've result using the ''STM3210E-EVAL_SysTick_0x08005000.dfu'' like say in readme file.

The correct values are:

VECT_TAB_OFFSET  0x5000

0x08005000 and end is 0x08080000.

And 

VENDOR ID 0x0483

Now It does work correctly.