Translations of this page:

STM32 Discovery Linux

Сегодня, дорогие мальчики и девочки, мы поговорим, про то, как завести плату STM32 Discovery под Linux.

Как известно, на ней присутствует встроенный отладчик ST-Link, который позволяет программировать и отлаживать основной проц STM32F100RBT6B по интерфейсу SWD. Но вот незадача, ST-Link под Linux работает криво, кое-как эмулируя SCSI диск, что вводит ядро в ступор. Работать с родным ST-link'ом умеет программа stlink. Также можно залить в вспомогательный чип модифицированную прошивку от Versaloon, после чего устройство будет представляться как ком порт и с ним сможет работать например vsprog.

Пойдём по пунктам:

stlink

Как написано выше, оригинальная прошивка дискавери по USB представляется SCSI диском, но не отвечает на многие запросы ядра, что приводит к ресетам USB устройства. У автора этих строк получилось добиться относительно стабильной работы добавлением строчки

{ USB_DEVICE(0x0483, 0x3744), .driver_info = USB_QUIRK_RESET_MORPHS },

в файл drivers/usb/core/quirks.c, которая говорит ядру не ресетить устройство при ошибках.

После чего при первом запуске после подключения платы stlink тупит секунд 30 и заводится.

Разлочка МК

На плате дискавери находится два МК: собственно главный МК STM32F100RBT6B, ради которого вся веселуха и зачиналась. И STM32F103C8T6 - МК с зашитым отладчиком ST-Link.

Оба MK залочены и перед проведением спецоперации их надо уговорить сотрудничать.

Главный МК

Главный МК можно разлочить из винды, через ещё неубитый ST-Link с помощью штатных тулзов. Либо через USART bootloader программой Flash Loader Demonstrator, которая прекрасно пускается через wine. Что бы МК запускался в режиме лодыря необходимо снять перемычку SB16 расположенную с нижней стороны платы и ребутнуть проц чёрной кнопкой. А после разлочки и стирания не забыть поставить её на место.

Кстати, если Вас не интересует отладка, то можно не парится и шить МК через лодырь.

Вспомогательный МК

Вспомогательный МК, в котором зашит ST-Link, можно разлочить и перешить тоже двумя способами.

  • Если глаз остёр и рука не дрожжит, то можно подпаяться напрямую к выводам МК (30-USART1_TX и 31-USART1_RX) и прошить МК лодырем. В режим лодыря МК переводится подпайкой вывода резистора R7, соединенного с выводом 44-BOOT0, к шине +3.3V (можно взять на рядом расположенном конденсаторе C6) и подачей напряжения питания.
  • Перепрошить МК через SWD. Подробнее

Mapple

Versaloon

TODO

OpenOCD

TODO

См. также

 
stm32discovery-swd.txt · Последние изменения: 2011/10/03 18:43 — 80.249.191.250
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki