AnsweredAssumed Answered


Question asked by parlakf on Jul 16, 2013
I'm trying to upgrade my device firmware with the DFU demo for STM32F2xx. I adapted the code from  STM32_USB-HostDevice_Lib_V2.1.0\Project\USB_Device_Examples\DFU\MDK-ARM  to my project.

When the program runs, the DfuSe Demonstration sees "STM Device in DFU Mode" in the available DFU devices list. Then I choose a different firmware for my device (which I had tested before) and click upload. But, the DfuSe Demonstration gives the error code of "... has stopped working."
1) I executes the device with the DFU driver code(as in the demo code)
2) Choose a different example.dfu firmware file.
3) Click the DFU button which I'm using in the DFU firmware for entering the mode. 

/* Check if the Key push-button on STM32-EVAL Board is pressed */
            if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_4) == 0x00)    //if (STM_EVAL_PBGetState(Button_KEY) != 0x00)
            { /* Test if user code is programmed starting from address 0x800C000 */
                if(((*(__IO uint32_t*)APP_DEFAULT_ADD) & 0x2FFE0000 ) == 0x20000000)
                { /* Jump to user application */
                    JumpAddress = *(__IO uint32_t*) (APP_DEFAULT_ADD + 4);
                    Jump_To_Application = (pFunction) JumpAddress;
                    /* Initialize user application's Stack Pointer */
                    __set_MSP(*(__IO uint32_t*) APP_DEFAULT_ADD);
            } /* Otherwise enters DFU mode to allow user to program his application */

4) Finally, click the upload button in the DfuSe Demonstration program.

After all, the error code is shown on the display.

Looking forward to hear you.