Нашел в сети проект USB HID загрузчика. https://github.com/bootsector/stm32-hid-bootloader
Заинтересовал тем что имеет небольшой размер, около 3 КБ.
Загрузчик располагается в начале флеш-памяти, а основная программа со смещением 4 КБ. В STM32 нет отдельной области для загрузчика как в AVR и его можно расположить где угодно даже в ОЗУ (например если нужно переписать всю флеш-память).

Для того чтобы основная программа нормально работала со смещением от начала памяти, нужно отредактировать скрипт линкера (файл с расширением *.ld, например он может называться stm32f103c8_flash.ld). В файле нужно найти строки.

Код:
/* Memory Spaces Definitions */
MEMORY
{
    ROM  (rx) : ORIGIN = 0x08000000, LENGTH = 64K
    RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}

И заменить 0x08000000 на 0x08001000 и заодно размер флеша уменьшить на 4 КБ, т. е. заменить 64K на 60K (необязательно, т. к. в МК 128 КБ флеша). После этого прошивка будет создаваться для для работы начиная с адреса 0x08001000, т. е. со смещением 4 КБ от начала флеша. Кроме этого нужно в коде переназначить адрес таблицы векторов прерываний чтобы он тоже был со смещением 4 КБ. Для этого следует как можно раньше после старта программы выполнить строку

Код:
SCB->VTOR = 0x08001000;

Дело в том в начале таблицы векторов прерываний находится адрес стека и он тоже будет переназначен.

Загрузчик прошивается в МК обычным методом, т. е. через UASRT загрузчик или через SWD.
Далее чтобы активировать загрузчик нужно перемычку BOOT1 переключить в позицию 1. Т. е. перемычку что ближе к кнопке нужно переместить ближе к МК.

Свернутый текст

http://sh.uploads.ru/00bX1.png

После по USB нужно подключить плату к компьютеру. Должно быть найдено новое USB устройство и установлены на него драйверы.
Затем нужно запустить консоль, указать в ней путь к программе "HID Bootloader.exe" и к бинарному файлу прошивки.

Свернутый текст

http://s5.uploads.ru/7JG9P.png

Теперь нужно вернуть перемычку на место и перезапустить МК. Должен будет замигать светодиод (если был прошит Blink.bin а не другая программа).

Файлы. http://pure-basic.narod.ru/forum_files/ … tloader.7z