cancel
Showing results for 
Search instead for 
Did you mean: 

There is some problem with state changes (dfuDNLOAD-IDLE -> dfuMANIFEST-SYNC) in DfuSe Demo(v3.0.6)

ASedo.1
Associate II

Hi. I am working with DFU by DfuSe Demo(v3.0.6) and auto-generated code from CubeMX for STM32F072. My goal - control DFU state for choosing the best moment to reboot device. From app notes and DFU specification I found out, that state change (dfuDNLOAD-IDLE -> dfuMANIFEST-SYNC) happens after last command DNLOAD with zero wlength. But in Keil debug and UART output( that was implemented by me) I see, that DfuSe Demo doesn't send this command and the command order looks like :

  • ........ - process of firmware uploading
  • DFU_GETSTATUS 
  • DFU_DNLOAD - this is last package with firmware
  • DFU_GETSTATUS 
  • DFU_GETSTATUS 
  • DFU_GETSTATUS 
  • DFU_GETSTATUS 
  • DFU_ABORT 
  • DFU_GETSTATUS 

With "Verify" I had the same situation - DFU_ABORT command resets the state to dfuIDLE.

Maybe anyone had same problems or can give a piece of advice?

Update: But, in general the update and verify processes always are successful.

1 REPLY 1
BChan.1539
Associate

DFU_DNLOAD 에서 확장된 명령 4종 모두 dfuIDLE 상태에서 dfuMANIFEST-SYNC로 바로 이동하는 것을 실험으로 관찰하였습니다. 이 내용을 설명하는 기술자료 또는 DFUse 규격문서를 찾고 있는데 어디 있을까요.