cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7 Jump To BootLoader Not Working?

C-Coder
Associate II

I have a custom board with an STM32H747XI with BOOT0 tied to 0. I want to jump to the bootloader from my application so that I can perform a USB DFU. The USB works correctly. I have a terminal app that I use to connect to the VCP. If I send a specific command, the embedded side will set a variable in a NOINIT section, call USBD_DeInit on the FS and HS devces, then call NVIC_SystemReset. In main before bringing up any hardware, I check the NOINIT variable for the specific pattern, if it is set, I clear it to 0 and then call the JumpToBootloader function from this post:

 

https://community.st.com/t5/stm32-mcus/jump-to-bootloader-from-application-on-stm32h7-devices/ta-p/49510

 

I've left that code as is. Upon executing, my VCP device goes away and is replaced by a device that is labeled as:

 

Unknown USB Device (Device Descriptor Request Failed)

 

Running wireshark confirms that the descriptor packets are never seen. If I break in with the debugger, it is executing in the area that "should" be the bootloader. Usually around 0x1FF0Axxx. Matching what AN2606 says, PA11 goes to DM and PA12 goes to DP.

 

How can I debug this further?

 

Thanks,

C-Coder

1 REPLY 1
C-Coder
Associate II

Update: Duh. I forgot that we have two ports on this new board and the one I use for everything is connected to the HS device, and of course the DFU uses the FS device. Plugging in my other port I do see a device labeled as "DFU in FS Mode." I'll see if I can use one of the tools for uploading a new image to the device and make sure it works. If so, I'll mark this thread as solved.

 

C-Coder