AN2662 USART bootloader
Doc ID 14156 Rev 1 25/83
Figure 12. Go command: device side
The host sends the bytes as follow to the STM32F105xx and STM32F107xx :
2.11 Write Memory command
The Write Memory command is used to write data to any memory address of RAM starting
from 0x2000 1000, Flash memory, or Option byte area. Refer to the STM32F10xxx Flash
programming manual (PM0042). When the bootloader receives the Write Memory
command, it transmits the ACK byte to the user. After the transmission of the ACK byte, the
bootloader waits for an address (4 bytes, byte 1 is the address MSB and byte 4 is the LSB)
and a checksum byte, it then checks the received address. For the Option byte area, the
Byte 1: 0x21
Byte 2: 0xDE
Wait for ACK
Byte 3 to Byte 6: start address
byte3: MSB
byte6: LSB
Byte 7: checksum: XOR (byte 3, byte 4, byte 5, byte 6)
ai14640b
Received bytes =
0x21+0xDE?
Start Go
ROP active
Send ACK byte
Send ACK byte
Receive the start address (4 bytes) &
checksum
Address valid &
checksum OK?
Send ACK byte
Jump to address
Send NACK byte
No
Ye s
No
Ye s
No
End of Go