cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F7 chip option bytes corruption

svLag
Associate II

Overview : In my project, I use two ST controllers which communicate over UART. 1st controller ( A ) has an intelligence to upgrade firmware of 2nd controller ( B ). This upgrade happens by initiating bootloader over UART of B by A. ( Boot 0 pin is used )

Problem statement :

Following are the commands sent by controller A over UART to flash firmware,

  1. A initiates the bootloader of B.

2. disable Read protection on B.

3. Write firmware on B.

4. Enable read protection on B.

5. Upgrade process complete.

This operation works well in happy path. However, I've a script that would interrupt power supply to product at 200 ms to perform stress test. I believe, option bytes memory is getting corrupted when read protection is enabled/disabled and power is cut off ..

Here are my practical observations :

BOOT0 address should be 0x0090 and 0x0040( System bootloader memory )

But when I read this value gets changed to 0xFFFF and 0xFFFF.

I assume, complete flash area is getting replaced by 0xFF ...

Hence, Read protection gets changed to level 1. I'm looking for closure in terms of theoretical rationale.

I am looking for solution here :

  1. I would customized bootloader code in controller B to flash itself. If yes, Please point me to the source code repository or give me directions.

0 REPLIES 0