STM32F429 IAP through UART using own protocol, without specific bootloader
Hi everyone,
My question is what do I have to do ?
I read too much information about IAP to really understand what do I need to do.
Our firmware is working great for now, we want to update the firmware without stop everything and on restart we can be in the newer firmware. The image "On the fly.png" shows our procedure.
During the upload process, we get the byte through the UART (parsed because of our protocol) and put these data in the FLASH (actually it works for put / read data at address 0x08100000), "Memory map.png".
I want to do it really simple :
- Our initial firmware is contained in the Flash Bank 1 ;
- Transfer firmware through UART to Flash Bank 2 ;
- Restart in bootloader mode so we go to Flash Bank 2 = newer firmware.
So my idea was to :
- Upload all data from START_ADDRESS = 0x0810000 ;
- BOOT0 is connected to ground (so 0) -> start in bootloader ;
- BFB2 should be 1;
- FB_MODE should be 0 because at each upload we send data to the address 0x0810000.
But I read some about VECTOR_TABLE and in the AN2606 there is the conditional "first address of Bank2 is within int. SRAM address".
I do not really get this information.
Could you help me on that ? The procedure I imagine is compatible with the upload process ?
In case of update of the update, go to firmware version +1.1.1 from version 1.1.0, how did it go with this procedure ? We also write in the Bank 2 ?
Thanks,
Simon
Edit : I also need to know what file I have to upload if I want to write it directly in FLASH ? .bin / .hex / .srec / .elf
I think it is the .bin file but it seems very small (81 kBytes) also the .hex (226 kBytes).
