Skip to main content
Associate III
April 8, 2024
Solved

How i can upload code via DFU without changing the state of BOOT0 pin.

Hi,

I am using STM32H755ZI for a project and i want to provide a firmware update feature. I will only have one USB port in the end product, so i can't use ST LINK. When i try to upload using DFU, i need to pull my BOOT0 pin high such that the bootloader will be loaded from system memory, I need to reset the board as well. That makes sense too. But let's say i don't want to do that. Can i jump to the system memory location such that the chip will enter DFU mode. I was thinking about something like this. If i receive the character 'f' i enter firmware upgrade mode.

HAL_UART_Receive(&huart3,&rxData, 1, HAL_MAX_DELAY);//I am using STLINK USB UART for testing
if (rxData == 'f') {
//Code to jump to bootloader and enter firmware upgrade mode.
}

I checked AN2606 and it says that for  STM32H74xxx/75xxx
System memory - 122 Kbytes, starting from address 0x1FF00000 contain the bootloader firmware. The bootloader start address is 0x1FF09800.

So, is it possible to jump to this address and make this work? 
I tried some random stuff to jump to these memory location but none of them worked. Can someone guide me through this. 

Thanks,

Kiran

This topic has been closed for replies.
Imen.DBest answer
ST Technical Moderator
April 8, 2024

Hello @kps98 ,

Please look at this FAQ: Jump to bootloader from application on STM32H7 dev... - STMicroelectronics Community

STM32H7 System Bootloader sometimes not working - STMicroelectronics Community

 

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks

2 replies

Imen.DBest answer
ST Technical Moderator
April 8, 2024
In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
kps98Author
Associate III
April 8, 2024

Thank you very much. It works