cancel
Showing results for 
Search instead for 
Did you mean: 

Can i (uart)flash a virgin(mcu)?

Jakub B
Associate III
Posted on September 28, 2017 at 15:41

Hi

I'm currently developing board that i would like to program from uart (new, fresh, virgin mcu STM32F0...).

Problem is it doesn't work like I imagined. I can program by uart only when i first programmed with swd.

I stumbled on this:

On STM32F070x6 and STM32F030xC devices only, internal empty check flag is

implemented to allow easy programming of the virgin devices by the boot loader. This flag is

  used when BOOT0 pin is defining Main Flash memory as the target boot space. When the

  flag is set, the device is considered as empty and System memory (boot loader) is selected

  instead of the Main Flash as a boot space to allow user to program the Flash memory.

  This flag is updated only during Option bytes loading: it is set when the content of the

  address 0x08000 0000 is read as 0xFFFF FFFF, otherwise it is cleared. It means a power

  on or setting of OBL_LAUNCH bit in FLASH_CR register is needed to clear this flag after

  programming of a virgin device to execute user code after System reset.

Does it mean that I can flash it with uart only on those series of mcu? or am I reading it wrong?

1 REPLY 1
AvaTar
Lead
Posted on September 28, 2017 at 15:51

Does it mean that I can flash it with uart only on those series of mcu? or am I reading it wrong?

Yes, you are reading it wrong.

You can always enter the System Bootloader when doing the Boot0/Boot1 trick.

See appnote AN2606:

http://www.st.com/resource/en/application_note/cd00167594.pdf

The supported interfaces (UART, etc.) depend on the device.

The feature you mentioned works on top of that, if the Flash is blank.