2017-09-28 06:41 AM
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?
2017-09-28 06:51 AM
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.