I am developing a firmware upgrade app for a custom board using an STM32F417.
The custom PCB does not have pin outs for Boot0 and Boot1 pins.
I have written a control app (console application) in C# and I can control the 417 through USART1.
I found the following code on an ST video, and I've added this function to the firmware code.
For testing, I hard-coded a call to this function. I've stepped through the code in the debugger and
it makes it to the while loop and should be ready to start running the bootloader.
Here is the bootloader jump function:
I have tried to connect with the bootloader two different ways. First, I tried in C# code to send the byte the 417 is waiting for 0x7f. I verified on an oscilloscope that the byte is being received, but there is not response. Secondly, I tried to start the bootloader using the Flash Loader Demonstrator from ST. I configured it to connected on the correct Port Name, 115200, 8 data bits, even parity, and 1 stop bit as specified in the application note AN3155.
Application note AN2606 specifies the flash address of 0x1FFF0000. For the set-up of the jump, it specified jumping to that address plus 4, so 0x1FFF004. It also specified setting the Master Stack Pointer to the address located at the top of flash memory, which I found to be 0x801D0020.
What could be preventing the connection to the bootloader?