Comments 103
github.com/Krakenw/Stlink-Bootloaders
Предполагаю что он был слит с нуклео либо любой другой платы)
Где-то в сети гуляет мануал о том как вытянуть прошивку с stm32…
Бинарники там не выложены, но все необходимые процедуры описаны неплохо.
В итоге, оно через джампер программатор, либо uart? Или синхронно и ничего нажимать не нужно?
Это проще, чем ковыряться в ST-Link…
Такой вариант на работе проживет недельку, а потом скончается от замыкания выхода с выходом, замыкания на питашку/землю, и прочим «естественным» причинам
Тем более, по их цене их можно горсть сразу взять, а также, не задумываясь, выдавать в пользование всем желающим, от разработчиков до заказчиков.
Пришлось сменить шмот на с коротким рукавом, свести все земли в 1 точке и антистатический браслет туда же. Без браслета — вот опять вчера меняли МК, который то шьется, то не шьется и стабилизатор при нем сильно грелся.
Новый шьется без проблем, стаб — холодный.
И как плюс — можно заливать прошивки без софта, работая как с флешкой.
Стандартный USB-UART, USBASP и STLINK можно купить в любом городе в магазине радиотоваров. Вам остается только скинуть по почте файл прошивки, а не ехать с вашим хитрым программатором в другой город.
SWD, 3.3, земля, сброс и uart_tx чтобы знать что в железке творится. Так, что инициативу поддерживаю, как и резисторы защитные (на фото программаторов их не видно, наверное, в нижнем слое).
А сгорать — не сгорает уже третий год.
Расскажите, как нужно использовать программатор чтобы он сгорел?
К счастью, за много лет так ничего и не сгорело — ни устройства, ни программаторы, ни порты компа.
Мы себе завели свой собственный 6-контактный разъём с UART TX/RX или SWDIO/SWDCLK + BOOT + RESET + GND + VCC и с той поры в ус не дуем. Копеечную платку адаптера для настройки или перепрошивки через UART-бутлоадер (CP2102, LDO, две кнопки, microUSB) желающим просто дарим.
github.com/blacksphere/blackmagic/wiki
https://madnessinthedarkness.transsys.com/blog:2017:0122_black_magic_probe_bmp_on_st-link_v2_clones
github.com/dword1511/stm32-vserprog
Есть несколько вариантов модификации, и часть из них нельзя сделать если чип не подходящий (не хватит памяти).
А как узнать, какой вариант подойдет?
Например, модификацию STM32+MSD+VCP можно сделать только если чип STM32F1xxCBxx, однако у нее есть аналог STM32+Audio
У меня какой-то китайский клон запаян — STM32GC102CB.))
В сети о ней разное пишут…
Если все же решитесь прошить — обязательно сообщите о результатах.
Пользуйтесь )
OpenOCD работает, но криво, и судя по отзывам он многих не устраивает )
Ну и если не желаете мучаться с GDB серверами — можно прошить под BMP, он там встроенный.
Только вот не имею ни малейшего понятия можно ли VisualGDB настроить на другой GDB сервер, или BMP.
В Atollic TrueSTUDIO тоже хорошо работает, он использует ST-LINK_gdbserver.
Видимо, придется перешивать.
Во всяком случае вы можете взять платку с оригинальным st-link v2.1 слить с нее бутлоадер и порадовать себя и народ…
Но мне больше понравился вариант этого мода с прошивкой BMP.
Правда SWO в BMP на форточках не знаю как запустить.
Однако мне кажется она мало чем отличается от той что на гите, кроме информации о плате в которой программатор стоит…
Всё ёмко и по делу, но вот что это, для чего, почему нельзя взять сразу 2.1, в чём вообще преимущество девайса — можно было бы и добавить. Так, как инструкция — супер, как статья — не очень.
Почему нельзя взять сразу 2.1? Потому что их не существует по отдельности, только на платах нуклео и дискавери, что я так же упомянул в предисловии.
Если же вам интересно знать что есть ST-Link — гугл открыт для всех)
А не описывал я это потому что описание девайся не является целью данной статьи )
Что насчет битов защиты, сможет ли установить?
Как определить, что уже прошито и проверено?
Не пойдет ли по второму кругу шить, если в нужное время не отключить?
Подключил программатор к программируемому девайсу и к пк.
Закинул на виртуальную флешку файл прошивки — вылазит окно копирования файла
Когда копирование завершится можно считать что программатор завершил прошивку.
По второму кругу прошивка не пойдет, потому как для этого придется закинуть на него файл прошивки еще раз.
Содержимое диска:
Содержимое папки E:\
27-May-04 16:30 46 DETAILS.TXT
1 файлов 46 байт
Содержимое папки E:\System Volume Information
02-Mar-19 11:11 .
02-Mar-19 11:11 ..
02-Mar-19 11:11 12 WPSettings.dat
02-Mar-19 11:11 76 IndexerVolumeGuid
2 файлов 88 байт
Всего файлов:
3 файлов 134 байт
2 папок 139,264 байт свободно
Только что проверил — скомпилировал blink в бинарный файл прошивки, закинул на программатор и bluepill начал мерцать.
Очистил МК, записал на диск и ничего.
Но МК STM32F303
Что в нем?
Если же его нет то прошивка прошла успешно.
А если файл был до прошивки — значит скорее всего вы не правильно подключили программатор к девайсу.
Так же, если не подключен RESET от программаторы к девайсу — программатор не будет сбрасывать девайс после прошивки, и это придется сделать вручную нажатием кнопки RESET после прошивки.
Имя файла было "_tst.bin" — не работало, переименовал в «tst.bin» — сработало. Фантастика…
Reset не подпаивал, давлю кнопкой.
Что не так?
«The application file format is unknown and cannot be parsed and/or processed.» значит что файл собран не правильно.
То что binary и bin одно и то же я сам понял и написал же об этом… И я понимаю сам, что что то не так скомпилировано и спрашиваю совета что делать. Менял кое какие настройки компиляции наугад. Результата ноль. И я не знаю как гуглить эту проблему ни по-русски ни по-английски. Думал по ключевым словам stm32 msd, но совсем не то нахожу.
Если чем-то поможет: community.st.com/s/question/0D50X00009XkWfzSAF/how-to-generate-a-bin-file-in-atollic
Давайте с другой стороны зайдем. Дайте мне bin файл мигалки для синей пилюли. Я попробую ваш файл кинуть в отладчик. Stm32f103c8t6, pc13 нога светодиода.
Если включена попробуйте выключить.
Спасибо :-)
Я думал, что раз Reset на гребёнку (c торца) пилюли не выведен, то и подключать не обязательно. Ведь обычный способ прошивки нормально работает и без Reset.
На пример через телефон (не пробовал, не уверен, но и не отрицаю такую возможность).
Использую 103C8T6 вместо рекомендуемого 103CBT6
Некоторые китайские STM32F103C8T6 имеют «на борту» 128К, Когда поставил «честный» чип STM32F103C8T6 (малазийский), то при попытке сделать апгрейд получил сообщение о нехватки памяти.
На STM32F103CBT6 всё Ок.
Соответственно почти любую прошивку пихаешь туда — недостаточно места на диске.
микруха C8T6, у нее ОЗУ 20кб.
Зависит ли размер виртуального диска от ОЗУ или от чего то еще?
Или как его увеличить?
Емкость виртуального носителя зависит от емкости прошиваемого чипа, но не напрямую, я не разбирался как именно зависит.
Емкость озу не имеет значения.
Прошивать через виртуальный носитель можно только файлы *.bin и *.binary.
Не знаю смогу ли чем нибудь еще помочь, так как я прошил его в Black Magic Probe (удобная штука получилась, использую вместе с VS Code).
У меня получилась картина, что программатор появился как флешка, а вот ST-link utility его видеть перестает (после первой прошивки через эту утилиту)
FT2232 не так уж и везде продается )
На али сейчас платка с ним стоит от ~10$ (с учетом доставки)
ST-Link V2 же от ~2$ (с учетом доставки)
Разница пятикратная.
Если же затронуть местные магазины (не Россия) — FT2232 либо нет вообще (даже чисто чипа) либо стоимость от 30$ за платку.
А в Российском «ЧИП и ДИП» так вообще от 96$ за платку.
ST-Link V2 — есть почти в каждом местном радиомагазине (не Россия), стоимость от 5$.
А в Российском «ЧИП и ДИП» от 11$.
Конечно может и не стоит возиться ради такой небольшой разницы как 8$.
Но на них можно купить три десятка хороших dc-dc модулей по 3A каждый.
Тем более если это не проблема для того кто будет модить)
Ну а если учитывать разницу цен в местных (а тем более «ЧИП и ДИП») — то точно уж жаба задушит переплачивать )
Либо же не переделывать а и правда взять Nucleo на али, и за те же деньги что и FT2232 у местных получить ST-Link V2.1 + МК с обвязкой, пускай и не самой удобной.
Единственный + это многофункциональность чипа…
Но меня и CH341 вполне устраивает при его стоимости в местных магазинах ~2$.
А искать чип отдельно и делать плату —
1) очередной гемор на разводке и травлении
2) (хоть это и мало вероятно) если попадется брак или пустышка — не докажешь что это не ты убил чип не правильной разводкой, или перегревом при пайке.
???
Ой…
Но суть не в этом. Определился нормально, но когда попытался обновить до 2.1, получил ошибку «firmware too big for this board». Так и не вышел каменный цветок…
Делал на маке, а в нем Virtual Box с XP. К сожалению, раз 5 шил бутлоадер, прежде, чем дошло, что ST-Link стал новым и надо «сказать» виртуалбоксу пробросить USB в гостевую ось.
Прям, великолепно все!
Успешно переделал китайский st-link на базе некоего CKS32F103C8.
Все замененные контакты находились на верхней стороне платы (5В, 3.3В, SWIO и RST) так что не пришлось мучиться с прокладкой проводов на ту сторону.
Встроенный VCP — кайф!
Как запитать плату программатором ST Link V2?
Делаем ST-Link V2.1 из китайского ST-Link V2