Загружаем прошивку в Stm32f105 по USB

Отладочная плата После того, как фирма Atmel подкачала со сроками поставок процессоров Sam3U встал вопрос о выборе нового процессора. Выбор пал на семейство процессоров stm32f10x от фирмы ST Microelectronics, а конкретно — на процессор stm32f105. Одним из особенностей этого процессора является то, что он может загружать в себя прошивку через USB-интерфейс по протоколу DFU (используя собственный загрузчик, находящийся в ROM).

DFU — или Device Firmware Upgrade — это протокол для обновления прошивок по USB. Главные его преимущества в том, что он определён спецификацией USB и в том, что он достаточно прост. Вот только реализация этого протокола от ST оказалась не совсем стандартной. В результате вместо того, чтобы использовать готовую утилиту из проекта OpenMoko (dfu-util), её пришлось переписывать.

Утилита умеет загружать прошивку в RAM и FLASH, и запускать её на исполнение.

Ах, да, самое главное  — исходники лежат здесь.

4 комментария

  1. Антон Фельдман:

    а вот это — http://leaflabs.com/Maple — имеет отношение к проблеме dfu для stm3210x?

  2. Антон Фельдман:

    и всё равно непонятно. почему у leaflabs всё шьётся без модификаций dfu? процессор, вроде бы, такой же (STM32F103RB)… или всё же отличия в реализации протокола для одного семейства процессоров?

  3. Николай Замотаев:

    У этого процессора (stm32f103) — вообще нет в ПЗУ загрузчика с поддержкой протокола dfu. Он загружается через последовательный порт.
    На ту плату сначала заливается bootloader, в котором реализован протокол DFU, а потом уже используется загрузка через DFU.

  4. «… При разработке новой платформы для приборов встал вопрос: а не заменить ли AVR на что нибудь другое? …»

    Всем привет! Такой вопросик — почему не стали применять программный Nios II процессор?