I'm trying to start the DFU bootloader of an STM32F4 Controller.
I have my own bootloader implementation and I try to jump to the DFU bootloader from my bootloader.
My Problem is:
My Firmware is connected to CAN2 of the Controller and there are other modules connected to the CAN-Bus.
I can start the DFU bootloader from my Firmware by Setting a MagicValue in the RAM and perform a Softwarereset.
This starts my own bootloader which reads the MagicValue from the RAM and then starts the DFU bootloader.
It seems that when there is CAN traffic while I want to start the DFU bootlaoder, the DFU bootloader does not start correctly.
Is it possible to tell the DFU bootloader to skip CAN and directly connect to USB-Device?
When starting the DFU bootloader with Keil, what would be the better approach? Starting directly from assembler code or from the main function?
Does anyone know what the __main function does?