STM32 Bootloader. Библиотеки загрузчиков микроконтроллеров STM32. Загрузчик на любой цвет и вкус.

  Рет қаралды 15,541

Vladimir Medintsev

Vladimir Medintsev

3 жыл бұрын

Доступные библиотеки для написания загрузчика для микроконтроллеров STM32. В ролике рассказывается о доступных библиотеках и о их использовании при написании собственного кода.
Загрузка файла ссылок - yadi.sk/i/h-HkLOcx_twBug
Канал в телеграмм - t.me/vladimir_medintsev
Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
Канал на RuTube - rutube.ru/channel/1797552/
Канал на KZfaq - / vladimirmedintsev
------------------------------------------
Если вы хотите поддержать автора канала номер карты Сбер:
2202-2023-2480-4008
------------------------------------------

Пікірлер: 77
@wirtdonners4212
@wirtdonners4212 3 жыл бұрын
Владимир, как всегда, спасибо большое за такой интересный и доступный материал. Да, было всё сильно сжато, но ключевые моменты были озвучены.
@ArthurIslamRU
@ArthurIslamRU 3 жыл бұрын
Спасибо большое, Уважаемый Владимир!
@lazarocamargo
@lazarocamargo 3 жыл бұрын
Excellent tutorial!!!
@RepomanBY
@RepomanBY 3 жыл бұрын
Новичку однозначно нельзя начинать с SBSFU, уж очень они там намудрили с прошивкой. Там много всего помимо непосредственно шифрования, я бы даже сказал, что туда впихнули вообще все механизмы защиты, какие можно. Для своего проекта я из SBSFU взял питоновские скрипты, которые шифруют и подписывают прошивку, а также код, который проверяет и дешифрует. Теперь можно передавать клиенту бинарник, даже если в нем есть какие-то приватные ссылки или пароли. Клиент может обновить прошивку через веб-браузер
@user-ue8ik3cm6e
@user-ue8ik3cm6e 3 жыл бұрын
"Ничего непонятно, но очень интересно"©
3 жыл бұрын
thank you for sharing.
@abab-hk5ft
@abab-hk5ft 3 жыл бұрын
Спасибо за обзор. Жаль что сразу после ввхода не успел посмотреть. Удави вам в делах!
@Arduino_Kit
@Arduino_Kit 3 жыл бұрын
круто
@RepomanBY
@RepomanBY 3 жыл бұрын
У команды wolfssl я еще брал SFTP клиент, который успешно портировал на STM32
@WrongBee13
@WrongBee13 3 жыл бұрын
Все как всегда :) Интересно, познавательно. Не могу навязывать, но было бы чертовски интересно увидеть про ESP32. Почему? ИМХО системы на этом чипе более заточены под домашнее и полудомашнее использование, так как из коробки мощный чип, достаточное количество периферии и достаточно отлаженная поддержка беспроводных интерфейсов.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Вы вне всякого сомнения правы. ESP32 это круто. Но так уж получилось, что этот чип мне лично абсолютно не интересен. Я его не использую и соответственно видео сделать не могу. Мне просто нечего сказать про этот чип.
@alexivanov4269
@alexivanov4269 3 жыл бұрын
не путайте порнографию с эротикой. Возьмите "reference manual" по обоим mcu, сравните, и озарение придёт
@ibrag2012
@ibrag2012 3 жыл бұрын
Система безпеки - це окреме мистецтво: з одного боку має бути достатньо складним щоб не дісталися діти, а з іншого: має бути користь археологам :)
@vernnms78
@vernnms78 3 жыл бұрын
Смотрю Ваши видео. С одной стороны очень хочется перейти на СТМ, на более высокий уровень, с другой стороны... всё как-то запутанно... Мне не хватает информации "на пальцах".
@sozdatelEd
@sozdatelEd 3 жыл бұрын
Надо просто брать и пробовать. Вспомните себя когда вы начинали с других контроллеров? Наверно так же было сложно. Просто в тот момент не с чем было сравнивать. И сейчас потихоньку надо пробовать и когда что-то не будет получаться, то искать решения. Просто сейчас будет с чем сравнивать и в некоторых моментах будет гораздо легче, чем с самого ноля.
@chibyshev
@chibyshev 3 жыл бұрын
Поддерживаю. Как то пугаюсь начинать соскакивать с arduino. Хотя начинал ведь давным давно с ассемблера 8051.
@olexkov4643
@olexkov4643 3 жыл бұрын
Не надо боятся .. все на много проще чем кажется.
@silentage6310
@silentage6310 3 жыл бұрын
если ардуино еще устраивает то понятно мотивации нет. для любительских поделок самое то
@user-nr2mg1pg6v
@user-nr2mg1pg6v 3 жыл бұрын
Я нарвался на одного спеца, который текстовый редактор ваяет для программирования stm32... на ассемблере...
@Violancergta
@Violancergta 7 ай бұрын
Все это интересно только когда вместе с шифрованной прошивкой разработчик поставляет собственную утилиту для прошивки. Открой терминал или скачай тулзу с сайта ST и прочитай тонну маулатуры как прошить усиройство уже моветон..Получается что помимо знаний в программировании микроконтроллеров , начинающий должен не плохо программировать и ПК.
@RingQy
@RingQy 3 жыл бұрын
Здравствуйте. Владимир, как думаете что будет с ценами на микроконтроллеры? STM8S003F3 в прошлом году закупался по 15р сегодня смотрю уже 48р. STM32F030K6 брали года 3 назад по 35р теперь цены прыгают видел и по 320р что полнейший перебор. На фоне того что идет сокращение выпуска полупроводниковых приборов мирового масштаба не отразится ли это в конечном результате на дефиците микроконтроллеров?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Я не имею ни какого отношения ни к фирме STMicroelectronics ни к поставкам полупроводников в Россию. Лично мое мнение проблема стоимости микроконтроллеров слишком преувеличена. Тут нет никакой проблемы. И тему поднимают в своем большинстве радиолюбители.
@NuWhite
@NuWhite 3 жыл бұрын
А можно ли эти библиотеки адаптировать для обновления прошивки по USB протоколу, те без виртуальных компортов и прочих интерфейсов. Что-то не зацепился взгляд за этот момент в описании к библиотекам бутлодера
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Большая часть умеет USB из коробки... Это как раз не редкость.
@alexivanov4269
@alexivanov4269 3 жыл бұрын
а зачем? опс... Для етого есть ST-LINK $3-4
@easystm6865
@easystm6865 3 жыл бұрын
@@alexivanov4269 для пользователя, чтобы тот обновлять мог
@aziubin
@aziubin 3 жыл бұрын
Я слышал есть обновление прошивки посредством виртуальной файловой системы. Персоналка видит микроконтроллер как виртуальный диск, когда подключен по USB. Если на диск скопировать dfu файл, прошивка обновится этим файлом. Кажется Adafruit платы на STM32 так работают. Это реализовано через их специальный bootloader или через программные компоненты микроконтроллера более высокого уровня?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
В предыдущем видео рассказано как это сделать.
@aziubin
@aziubin 3 жыл бұрын
@@VladimirMedintsev Спасибо! Посмотрел видео про виртуальный диск и файловую систему. Сама по себе тема интересная и хорошо раскрыта. Я думал, что там всё намного сложнее. Про обновление прошивки через виртуальный диск (может уже есть готовые варианты) сделаете видео?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Я же сказал в видео, что собственный загрузчик это экзамен на профессиональную зрелость. Разумеется готового решения я не дам.
@alexivanov4269
@alexivanov4269 3 жыл бұрын
я два года назад сдел загрузчик, работает очень прилично. Выкладываешь на website .Hex file, откомпелированный в Keil , stm32F4 периодически заходит (раз в 10 минут), сверяет версии и дату, скачивает по http (wifi esp32) и записывает в 8М external Flash ->reboot, IAP bootloader in (0x8000000) переписывает основную прогу с адреса 0х8004000 и передаёт ей управление. Ну вот и всё...
@user-sb7dw4yk5b
@user-sb7dw4yk5b 3 жыл бұрын
Капец как все мудрено! Тут пришлось поменять контроллер на 3д принтере, так я и не понял, как его прошить, чтобы он и систему всю запустил, и с сд карты в последствии прошивался... 🤦‍♂️🤦‍♂️🤦‍♂️
@Arxon21
@Arxon21 3 жыл бұрын
Обновление прошивки в процессе работы основной программы МК как делать? Все эти обновлятели по зажатию кнопки, вставке сд карты очень неудобны для пользователя. Хорошо когда юзер использует устройство а обновление скачивается\заливается на МК в фоне и при перезагрузке МК будет переключение на новую прошивку. Время и удобство пользователя дороже чем 2х к использованию флеш памяти) Был бы оч рад если вы бы осветили даную тему!
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
В процессе работы обновлять только переключением банков.
@Arxon21
@Arxon21 3 жыл бұрын
@@VladimirMedintsev спасибо за наводку) Надеюсь что настанет время когда нужно будет отдать изделие людям, вот тогда и придется копать тему подробно.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@Evgeniy Svinovsky был заблокирован на данном канале за попытку разжигания ненависти и вражды.
@iljsg3390
@iljsg3390 3 жыл бұрын
Подскажите пожалуйста: я новичок в STM32, имеется F103C8T6 с али. Чип от ST, не CKS. Проблема в том что, CubeIDE, Keil, st-utility не хотят видеть микроконтроллер в состоянии когда две перемычки BOOT0 и BOOT1 стоят в положении 0. Но если переставить BOOT0 на 1, то все работает, контроллер шьется любыми утилитами. Только в этом режиме не работают подключенные к STM устройства и светодиод PC13. Отладка работает, есть доступ к build analyzer. Отладка в положении перемычек BOOT0 и BOOT1 на 0, не запускается. Отключил GDB сервер в настройках, и поставил частоту прошивки 100кгц. Хочу узнать почему так происходит.
@maximepifantsev
@maximepifantsev 3 жыл бұрын
Ни слова не написано каким программатором/отладчиком Вы пользуетесь. St-link?
@Maxnicknameable
@Maxnicknameable 3 жыл бұрын
Во первых то что на чипе с Али написано STM, совершенно не означает, что это STM. "Connect under reset" пробовали? Нужно удерживать reset В ST-Link utity Нажать "Connect" (режим "Connect under reset") Сразу же отпустить reset
@iljsg3390
@iljsg3390 3 жыл бұрын
@@maximepifantsev ST-Link, через SWD
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Да бесполезно, левый микроконтроллер из Китая + левый программатор с алиэкспресс и все это в руках новичка.... Казалось бы что может пойти не так...
@maximepifantsev
@maximepifantsev 3 жыл бұрын
@@iljsg3390 Возможно, в контроллере в options bytes отключен SWD. UDP: Да, кстати, options bytes читаются? Вот на этом же канале есть доработка китайского st-link - kzfaq.info/get/bejne/n6liYJN-yZOaqZs.html
@user-dn3vg9rw1y
@user-dn3vg9rw1y 2 жыл бұрын
Здравствуйте, А как узнать какой именно бутлоадер установлен в микроконтроллере?
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Какой вы установите, тот и установлен. Это ведь библиотеки которые служат только основой.
@user-dn3vg9rw1y
@user-dn3vg9rw1y 2 жыл бұрын
@@VladimirMedintsev Ну допустим я хочу переписать код чужого устройства под свои нужды. У меня не хилый запас электронных блоков управления на esp32 от чиллеров. По факту с неисправными реле и так далее. Выбросить жалко, а вот написать парочку программ управления под свои нужды не изготавливая плат и взяв под это готовые устройства выглядит очень заманчиво. Я как понимаю бутлоадер определяет конфигурации входов/выходов контролёра и подключения переферии. Поэтому и спрашиваю как бы узнать какой бутлоадер там установлен и уже работать с ним, как с самым подходящим.
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Бутлоадер отвечает только за загрузку программного обеспечения и его обновление. Никакого отношения к конфигурации он не имеет.
@user-dn3vg9rw1y
@user-dn3vg9rw1y 2 жыл бұрын
@@VladimirMedintsev спасибо большое)
@generalshield9516
@generalshield9516 2 жыл бұрын
Подскажите, допустим я захотел сделать некое устройство на STM32, я не хочу чтобы мой разработанный алгоритм работы можно было загрузить на скопированное устройство с таким же микроконтроллером. Но с другой стороны я планирую делать обновления ПО тем людям которые приобрели мое устройство, посредвом к примеру загрузкой Hex файла. Как быть? Писать свой бутлоадер?
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Да, только таким образом. Более того писать свой бутлоадер с шифрованием.
@generalshield9516
@generalshield9516 2 жыл бұрын
@@VladimirMedintsev хм, спасибо вам за ответ. А возможно слать только файл обновления hex, не полную прошивку? Ну как вариант..
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Можно, но как правило так никто не делает.
@generalshield9516
@generalshield9516 2 жыл бұрын
@@VladimirMedintsev пошерстив интернет нашел такую историю как id чипа, который закладывается изготовителем на стадии производства в память якобы только для чтения. Возникла мысль отсылать прошивку пользователю опираясь исключительно на этот id. То есть для каждого выпущенного устройства формировать серийный номер и опютправлять полную прошивку привязанную к уникальному номеру чипа id. Я же правильно понимаю что этот id невозможно в принципе изменить, раз он для только для чтения?
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Да идентификационный номер чипа уникален.
@user-tj2ti9id9j
@user-tj2ti9id9j 3 жыл бұрын
А вы не пробовали поработать с этой библиотекой ? Непонятно, как при Эдвертайзинге сделать так, чтобы рекламировались имеющиеся сервисы ?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
С этой, это с какой?
@jimmysmith8099
@jimmysmith8099 3 жыл бұрын
Приветствую. Вопрос Вам как спецу верхнего уровня. Есть у меня драйвер серводвигатеся на стм32, и он после ровно минуты работы в любых режимах двигателя, и даже когда двигатель даже не крутится - все равно вылетает ошибка 06, и двигатель останавливается. После перезапуска все повторяется. Минуту все работает штатно, ОС поддерживает обороты при нагрузке, все ок... Но минута - и вылет. disk.yandex.ru/i/Rl6im4YT8T4OAQ Аппаратно все вроде цело, ничего не греется. На что это похоже, где на Ваш взгляд искать причину?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Я понятия не имею где и в чем искать причину. То, что в этом устройстве стоит микроконтроллер STM32 ничего не говорит о его работе и той логике управления которую в него заложил производитель. Обычно сообщения об ошибке описаны в инструкции по эксплуатации изделия, ну или их можно узнать у производителя. Если же это не возможно, то правильнее было бы позвать специалиста и посмотреть на месте глазами. Вот таким вот обзором чего-то в интернете ну это реально не ко мне.
@jimmysmith8099
@jimmysmith8099 3 жыл бұрын
@@VladimirMedintsev я к Вам скорее как к разработчику подобных штуковин. Может быть такое, что кто-то по ошибке на готовый товар поставил некую тестовую прошивку, или неразлоченную типа предподажной ... бывают ли такие варианты в вашей сфере?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Слишком невероятные предположения у вас про прошивку и прочее, скорее всего все гораздо проще. Датчик и все такое...
@jimmysmith8099
@jimmysmith8099 3 жыл бұрын
@@VladimirMedintsev Это не у меня, а как раз у специалистов (правда дистанционно), поскольку со многими советовался за месяц, подробно оьъяснял поведение, и что где намерял и и насмотрел осциллографом. И все вроде там нормально. Про датчики конечно тоже предположения были, причем сначала. Либо логика где-то в заыке. Код ошибки - "перегрузка". До сих пор непонятки. Как отлавливать, когда не знаю, что и где искать... Схемы нет, работающего аналога - тоже.
@WormsWolf1
@WormsWolf1 3 жыл бұрын
А как же MCUboot ? github.com/mcu-tools/mcuboot
@traveladventure427
@traveladventure427 3 жыл бұрын
Я сам решу мое или не мое.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Смешно, ну ладно. Решайте.
@user-pw9ku5dm5p
@user-pw9ku5dm5p 3 жыл бұрын
Конкретная информация отсутствует, если приведен пример реализации загрузчика, что мешает кому то подобрать шифрование по описанному алгоритму и сделать клон устройства ? Автор будет высылать обновленную прошивку а пользователь будет заливать ее в клон устройства ... вот этот момент не понятен ... Адреса размещения программы описаны в документации ...
@nanocharg20
@nanocharg20 3 жыл бұрын
Общая идея подана нормально. Ссылки на примеры от производителя могут быть полезными. А шифрование может быть с авторской "изюминкой" в исходном коде бутлоадера который защищён от считывания флеша.
@retro55i
@retro55i 3 жыл бұрын
Зачем миллион команд? На одном конце страны нажимаешь кнопку "ОБНОВИТЬ" на другом конце страны в микропроцессор stm32 залетает очередная версия программы и никаких команд или командных строк.
@cb_q
@cb_q 3 жыл бұрын
тз понятно, а детали? какая функциональность нужна об bootloader'а? запись прошивки в мк, ок. а нужно чтобы BL выдавал версию прошивки? нужно чтобы была возможность сохранить прошивку (с мк)? нужно чтобы BL проверял прошивку на целостность (т.е. не повреждена ли она)? как BL будет получать прошивку? - если на другом конце страны, то для этого нужен канал передачи данных, значит мобильный интернет, wifi, чего-нибудь еще. а значит BL нужно как-то настроить - откуда и как тянуть прошивку, желательно не захардкодить, а сделать настраиваемым, потому что все может случиться (и симка изменится, и домен для загрузки переехать). командную строку можно исключить, если написать свою утилиту обновленя на пк, которая будет все делать сама. Владимир даже предлагал ранее сделать прошивальщик аппаратным - подключил мк к нему, он его обнаружил, сам прошил на последнюю версию и все, даже комп не нужен. но без протокола обмена данными (между мк и тем, кто его будет прошивать) тут никак.
Became invisible for one day!  #funny #wednesday #memes
00:25
Watch Me
Рет қаралды 58 МЛН
Я нашел кто меня пранкует!
00:51
Аришнев
Рет қаралды 4,7 МЛН
KINDNESS ALWAYS COME BACK
00:59
dednahype
Рет қаралды 151 МЛН
STM32 на Linux
39:19
Crazy Geeks
Рет қаралды 16 М.
Зачем ЭТО электрику? #секрет #прибор #энерголикбез
0:56
Александр Мальков
Рет қаралды 391 М.
Klavye İle Trafik Işığını Yönetmek #shorts
0:18
Osman Kabadayı
Рет қаралды 3,7 МЛН
Хотела заскамить на Айфон!😱📱(@gertieinar)
0:21
Взрывная История
Рет қаралды 6 МЛН