STM32F410RB Uart bootloader Write Memory CMD not working ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-15 6:11 AM
Hi,
I'm trying to utilise the built-in UART bootloader in the STM32F410RB to perform firmware update. I've read the AN3155 and AN2606 documentation but unfortunately, I'm out of luck so far when trying to write the firmware via the bootloader to the target MCU's internal flash.
What I've got working so far:
- I can communicate successfully over the UART interface to the bootloader
- The GET command response indicates the bootloader protocol version is 3.1 and the following commands are supported:
- 0x01 (Get Version & Read Protection Status)
- 0x02 (Get ID)
- 0x73 (Write Unprotect)
- 0x92 (Readout Unprotect)
- 0x11 (Read Memory)
The following is not working for me:
- I send the "write memory" command and checksum, e.g. 0x31, 0xCE
- I receive the ACK, e.g. 0x79
- I send the 4 byte start address and checksum, e.g. 0x08, 0x00, 0x00, 0x00, 0x08
- I receive the ACK e.g 0x79
- I send no of four byte e.g 0x03
- I send data e.g 0x01 0x02 0x03 0x04
- I send check sum byte e.g :- 0x0D
- I receive the NACK e.g :- 0x1F
- I expected to receive an ACK response from the bootloader.
And I not write four byte to flash
so please help me to how to give sequence of command to bootloader so I can successfully write flash.
- Labels:
-
Bootloader
-
STM32F4 Series
-
UART-USART
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-15 6:24 AM
> I send no of four byte e.g 0x03
> I send data e.g 0x01 0x02 0x03 0x04
> I send check sum byte e.g :- 0x0D
0x0D isn't the correct checksum here.
The correct checksum is 0x07 (0x03 ^ 0x01 ^ 0x02 ^ 0x03 ^ 0x04)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-11-15 8:22 PM
ok i try that way this is work.
thanks lot
