2022-09-29 09:39 AM
Hi all,
basically my question is similar to the one of @doctorseus in his*her post which has been closed:
https://community.st.com/s/feed/0D50X00009XkgKvSAJ
> Does anyone know a source where I can find an standard DFU implementation on-top of the STM32 USB implementation?
It seems that the default USB stack with STM32 devices for USB DFU implements USB DFU v1.1a and not v1.1:
> DfuSe (DFU with ST Microsystems extensions) is a protocol based on DFU 1.1. However, in expanding the functionality of the DFU protocol, ST Microsystems broke all compatibility with the DFU 1.1 standard. DfuSe devices report the DFU version as "1.1a".
DfuSe can be used to download firmware and other data from a host computer to a conforming device (or upload in the opposite direction) over USB similar to standard DFU.
The main difference from standard DFU is that the target address in the device (flash) memory is specified by the host, so that a download can be performed to parts of the device memory. The host program is also responsible for erasing flash pages before they are written to.
(https://dfu-util.sourceforge.net/dfuse.html)
Actually that's a nice convenient functionality to give the host system control over the update on the target.
However, I'd like to start with a USB DFU v1.1 compatible stack.
One option is to remove 1.1a specific code (e.g. bootloader command handling) from the code - as the request handlers for all USB DFU requests are already there, but they implement DfuSe logic/ command handling.
Another option would be to use something that's already available (based on ST's USB stack, so nothing completely new). Does a v1.1 compatible version exist?
Cheers