2021-01-07 07:01 AM
Because I do not have access to the BOOT0 pin (custom board, not eval board) I have used the software method of branching into the bootloader : https://stm32f4-discovery.net/2017/04/tutorial-jump-system-memory-software-stm32/
I have adpted this code for the device (notably bootloader address 0x1FF0 0000)
USART2 physical pins are PA2 and 3
My questions are:
____
logs from Cube
15:59:33:510 : Serial Port COM34 is successfully opened.
15:59:33:511 : Port configuration: parity = even, baudrate = 115200, data-bit = 8, stop-bit = 1.0, flow-control = off
15:59:33:511 : No Init bits value is : 0
15:59:33:511 : Sending init command:
15:59:33:511 : byte 0x7F sent successfully to target
15:59:34:511 : Wait ends after 1 loop, dataready = 0, delay = 1001
15:59:34:511 : Timeout error occured while waiting for acknowledgement.
15:59:34:512 : No response from target received
15:59:34:519 : byte 0x7F sent successfully to target
15:59:34:621 : Wait ends after 1 loop, dataready = 0, delay = 100
15:59:34:621 : Timeout error occured while waiting for acknowledgement.
15:59:34:621 : No response from target received
15:59:34:621 : Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration. Reset your device then try again...
Any help is appreciated, thank-you!
Solved! Go to Solution.
2021-01-08 10:17 AM
I use Clear Terminal (was Connex, but now under Telit), I like the X-Modem-1K implementation. I have target and host side implementations of the algo.
On the L151 boards I have, I'm staging the new firmware in the upper portion of the internal Flash and I can trigger the app to copy a small loader to RAM and overwrite itself. Living on the edge, but it only initiates if the image is valid, and I have other ways to debrick. I don't recall the exact size of the loader, but could likely do it in 512-1024 bytes if pushed.