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

Поделиться
HTML-код
  • Опубликовано: 30 ноя 2024

Комментарии • 78

  • @itsm1448
    @itsm1448 12 часов назад +1

    Спасибо Владимир за отличные лекции по STM и микроконтроллерам! Почти весь канал пересмотрел, отличные модули с полезными знаниями!

  • @RepomanBY
    @RepomanBY 3 года назад +3

    Новичку однозначно нельзя начинать с SBSFU, уж очень они там намудрили с прошивкой. Там много всего помимо непосредственно шифрования, я бы даже сказал, что туда впихнули вообще все механизмы защиты, какие можно. Для своего проекта я из SBSFU взял питоновские скрипты, которые шифруют и подписывают прошивку, а также код, который проверяет и дешифрует. Теперь можно передавать клиенту бинарник, даже если в нем есть какие-то приватные ссылки или пароли. Клиент может обновить прошивку через веб-браузер

  • @wirtdonners4212
    @wirtdonners4212 3 года назад +2

    Владимир, как всегда, спасибо большое за такой интересный и доступный материал. Да, было всё сильно сжато, но ключевые моменты были озвучены.

  • @ArthurIslamRU
    @ArthurIslamRU 3 года назад +1

    Спасибо большое, Уважаемый Владимир!

  • @АлександрИванович-з7ы

    "Ничего непонятно, но очень интересно"©

  • @RepomanBY
    @RepomanBY 3 года назад +1

    У команды wolfssl я еще брал SFTP клиент, который успешно портировал на STM32

  • @abab-hk5ft
    @abab-hk5ft 3 года назад +2

    Спасибо за обзор. Жаль что сразу после ввхода не успел посмотреть. Удави вам в делах!

  • @vernnms78
    @vernnms78 3 года назад +11

    Смотрю Ваши видео. С одной стороны очень хочется перейти на СТМ, на более высокий уровень, с другой стороны... всё как-то запутанно... Мне не хватает информации "на пальцах".

    • @sozdatelEd
      @sozdatelEd 3 года назад +3

      Надо просто брать и пробовать. Вспомните себя когда вы начинали с других контроллеров? Наверно так же было сложно. Просто в тот момент не с чем было сравнивать. И сейчас потихоньку надо пробовать и когда что-то не будет получаться, то искать решения. Просто сейчас будет с чем сравнивать и в некоторых моментах будет гораздо легче, чем с самого ноля.

    • @chibyshev
      @chibyshev 3 года назад

      Поддерживаю. Как то пугаюсь начинать соскакивать с arduino. Хотя начинал ведь давным давно с ассемблера 8051.

    • @olexkov4643
      @olexkov4643 3 года назад +1

      Не надо боятся .. все на много проще чем кажется.

    • @silentage6310
      @silentage6310 3 года назад +1

      если ардуино еще устраивает то понятно мотивации нет.
      для любительских поделок самое то

    • @АлексейШутко
      @АлексейШутко 3 года назад

      Я нарвался на одного спеца, который текстовый редактор ваяет для программирования stm32... на ассемблере...

  • @ibrag2012
    @ibrag2012 3 года назад +1

    Система безпеки - це окреме мистецтво: з одного боку має бути достатньо складним щоб не дісталися діти, а з іншого: має бути користь археологам :)

  • @WrongBee13
    @WrongBee13 3 года назад +1

    Все как всегда :) Интересно, познавательно. Не могу навязывать, но было бы чертовски интересно увидеть про ESP32. Почему? ИМХО системы на этом чипе более заточены под домашнее и полудомашнее использование, так как из коробки мощный чип, достаточное количество периферии и достаточно отлаженная поддержка беспроводных интерфейсов.

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +1

      Вы вне всякого сомнения правы. ESP32 это круто. Но так уж получилось, что этот чип мне лично абсолютно не интересен. Я его не использую и соответственно видео сделать не могу. Мне просто нечего сказать про этот чип.

    • @alexivanov4269
      @alexivanov4269 3 года назад +1

      не путайте порнографию с эротикой. Возьмите "reference manual" по обоим mcu, сравните, и озарение придёт

  • @lazarocamargo
    @lazarocamargo 3 года назад +1

    Excellent tutorial!!!

  •  3 года назад

    thank you for sharing.

  • @Arduino_Kit
    @Arduino_Kit 3 года назад

    круто

  • @Violancergta
    @Violancergta Год назад

    Все это интересно только когда вместе с шифрованной прошивкой разработчик поставляет собственную утилиту для прошивки. Открой терминал или скачай тулзу с сайта ST и прочитай тонну маулатуры как прошить усиройство уже моветон..Получается что помимо знаний в программировании микроконтроллеров , начинающий должен не плохо программировать и ПК.

  • @VladimirMedintsev
    @VladimirMedintsev  3 года назад

    @Evgeniy Svinovsky был заблокирован на данном канале за попытку разжигания ненависти и вражды.

  • @aziubin
    @aziubin 3 года назад +2

    Я слышал есть обновление прошивки посредством виртуальной файловой системы. Персоналка видит микроконтроллер как виртуальный диск, когда подключен по USB. Если на диск скопировать dfu файл, прошивка обновится этим файлом. Кажется Adafruit платы на STM32 так работают. Это реализовано через их специальный bootloader или через программные компоненты микроконтроллера более высокого уровня?

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +4

      В предыдущем видео рассказано как это сделать.

    • @aziubin
      @aziubin 3 года назад +1

      @@VladimirMedintsev Спасибо! Посмотрел видео про виртуальный диск и файловую систему. Сама по себе тема интересная и хорошо раскрыта. Я думал, что там всё намного сложнее. Про обновление прошивки через виртуальный диск (может уже есть готовые варианты) сделаете видео?

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +2

      Я же сказал в видео, что собственный загрузчик это экзамен на профессиональную зрелость. Разумеется готового решения я не дам.

    • @alexivanov4269
      @alexivanov4269 3 года назад +2

      я два года назад сдел загрузчик, работает очень прилично. Выкладываешь на website .Hex file, откомпелированный в Keil , stm32F4 периодически заходит (раз в 10 минут), сверяет версии и дату, скачивает по http (wifi esp32) и записывает в 8М external Flash ->reboot, IAP bootloader in (0x8000000) переписывает основную прогу с адреса 0х8004000 и передаёт ей управление. Ну вот и всё...

  • @NuWhite
    @NuWhite 3 года назад +1

    А можно ли эти библиотеки адаптировать для обновления прошивки по USB протоколу, те без виртуальных компортов и прочих интерфейсов. Что-то не зацепился взгляд за этот момент в описании к библиотекам бутлодера

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +2

      Большая часть умеет USB из коробки... Это как раз не редкость.

    • @alexivanov4269
      @alexivanov4269 3 года назад +1

      а зачем? опс... Для етого есть ST-LINK $3-4

    • @easystm6865
      @easystm6865 3 года назад +1

      @@alexivanov4269 для пользователя, чтобы тот обновлять мог

  • @RingQy
    @RingQy 3 года назад

    Здравствуйте. Владимир, как думаете что будет с ценами на микроконтроллеры? STM8S003F3 в прошлом году закупался по 15р сегодня смотрю уже 48р. STM32F030K6 брали года 3 назад по 35р теперь цены прыгают видел и по 320р что полнейший перебор. На фоне того что идет сокращение выпуска полупроводниковых приборов мирового масштаба не отразится ли это в конечном результате на дефиците микроконтроллеров?

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

      Я не имею ни какого отношения ни к фирме STMicroelectronics ни к поставкам полупроводников в Россию. Лично мое мнение проблема стоимости микроконтроллеров слишком преувеличена. Тут нет никакой проблемы. И тему поднимают в своем большинстве радиолюбители.

  • @Arxon21
    @Arxon21 3 года назад

    Обновление прошивки в процессе работы основной программы МК как делать?
    Все эти обновлятели по зажатию кнопки, вставке сд карты очень неудобны для пользователя.
    Хорошо когда юзер использует устройство а обновление скачивается\заливается на МК в фоне и при перезагрузке МК будет переключение на новую прошивку.
    Время и удобство пользователя дороже чем 2х к использованию флеш памяти)
    Был бы оч рад если вы бы осветили даную тему!

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад

      В процессе работы обновлять только переключением банков.

    • @Arxon21
      @Arxon21 3 года назад

      @@VladimirMedintsev спасибо за наводку) Надеюсь что настанет время когда нужно будет отдать изделие людям, вот тогда и придется копать тему подробно.

  • @РоманВорошилов-ж1у
    @РоманВорошилов-ж1у 3 года назад

    А вы не пробовали поработать с этой библиотекой ?
    Непонятно, как при Эдвертайзинге сделать так, чтобы рекламировались имеющиеся сервисы ?

  • @ЮрийБеникас
    @ЮрийБеникас 3 года назад

    Капец как все мудрено! Тут пришлось поменять контроллер на 3д принтере, так я и не понял, как его прошить, чтобы он и систему всю запустил, и с сд карты в последствии прошивался... 🤦‍♂️🤦‍♂️🤦‍♂️

  • @generalshield
    @generalshield 2 года назад

    Подскажите, допустим я захотел сделать некое устройство на STM32, я не хочу чтобы мой разработанный алгоритм работы можно было загрузить на скопированное устройство с таким же микроконтроллером. Но с другой стороны я планирую делать обновления ПО тем людям которые приобрели мое устройство, посредвом к примеру загрузкой Hex файла. Как быть? Писать свой бутлоадер?

    • @VladimirMedintsev
      @VladimirMedintsev  2 года назад +1

      Да, только таким образом. Более того писать свой бутлоадер с шифрованием.

    • @generalshield
      @generalshield 2 года назад

      @@VladimirMedintsev хм, спасибо вам за ответ. А возможно слать только файл обновления hex, не полную прошивку? Ну как вариант..

    • @VladimirMedintsev
      @VladimirMedintsev  2 года назад

      Можно, но как правило так никто не делает.

    • @generalshield
      @generalshield 2 года назад

      @@VladimirMedintsev пошерстив интернет нашел такую историю как id чипа, который закладывается изготовителем на стадии производства в память якобы только для чтения. Возникла мысль отсылать прошивку пользователю опираясь исключительно на этот id. То есть для каждого выпущенного устройства формировать серийный номер и опютправлять полную прошивку привязанную к уникальному номеру чипа id. Я же правильно понимаю что этот id невозможно в принципе изменить, раз он для только для чтения?

    • @VladimirMedintsev
      @VladimirMedintsev  2 года назад

      Да идентификационный номер чипа уникален.

  • @СекретныйгаражвРябково

    Конкретная информация отсутствует, если приведен пример реализации загрузчика, что мешает кому то подобрать шифрование по описанному алгоритму и сделать клон устройства ? Автор будет высылать обновленную прошивку а пользователь будет заливать ее в клон устройства ... вот этот момент не понятен ... Адреса размещения программы описаны в документации ...

    • @nanocharg20
      @nanocharg20 3 года назад

      Общая идея подана нормально. Ссылки на примеры от производителя могут быть полезными. А шифрование может быть с авторской "изюминкой" в исходном коде бутлоадера который защищён от считывания флеша.

  • @АнатолийД-ш6л
    @АнатолийД-ш6л 2 года назад

    Здравствуйте, А как узнать какой именно бутлоадер установлен в микроконтроллере?

    • @VladimirMedintsev
      @VladimirMedintsev  2 года назад

      Какой вы установите, тот и установлен. Это ведь библиотеки которые служат только основой.

    • @АнатолийД-ш6л
      @АнатолийД-ш6л 2 года назад

      @@VladimirMedintsev
      Ну допустим я хочу переписать код чужого устройства под свои нужды.
      У меня не хилый запас электронных блоков управления на esp32 от чиллеров. По факту с неисправными реле и так далее. Выбросить жалко, а вот написать парочку программ управления под свои нужды не изготавливая плат и взяв под это готовые устройства выглядит очень заманчиво. Я как понимаю бутлоадер определяет конфигурации входов/выходов контролёра и подключения переферии. Поэтому и спрашиваю как бы узнать какой бутлоадер там установлен и уже работать с ним, как с самым подходящим.

    • @VladimirMedintsev
      @VladimirMedintsev  2 года назад

      Бутлоадер отвечает только за загрузку программного обеспечения и его обновление. Никакого отношения к конфигурации он не имеет.

    • @АнатолийД-ш6л
      @АнатолийД-ш6л 2 года назад

      @@VladimirMedintsev спасибо большое)

  • @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 Это не у меня, а как раз у специалистов (правда дистанционно), поскольку со многими советовался за месяц, подробно оьъяснял поведение, и что где намерял и и насмотрел осциллографом. И все вроде там нормально. Про датчики конечно тоже предположения были, причем сначала. Либо логика где-то в заыке. Код ошибки - "перегрузка". До сих пор непонятки. Как отлавливать, когда не знаю, что и где искать... Схемы нет, работающего аналога - тоже.

  • @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 года назад +1

      Ни слова не написано каким программатором/отладчиком Вы пользуетесь. St-link?

    • @Maxnicknameable
      @Maxnicknameable 3 года назад +1

      Во первых то что на чипе с Али написано STM, совершенно не означает, что это STM.
      "Connect under reset" пробовали?
      Нужно
      удерживать reset
      В ST-Link utity Нажать "Connect" (режим "Connect under reset")
      Сразу же отпустить reset

    • @iljsg3390
      @iljsg3390 3 года назад +1

      @@maximepifantsev ST-Link, через SWD

    • @VladimirMedintsev
      @VladimirMedintsev  3 года назад +4

      Да бесполезно, левый микроконтроллер из Китая + левый программатор с алиэкспресс и все это в руках новичка.... Казалось бы что может пойти не так...

    • @maximepifantsev
      @maximepifantsev 3 года назад

      @@iljsg3390 Возможно, в контроллере в options bytes отключен SWD.
      UDP: Да, кстати, options bytes читаются? Вот на этом же канале есть доработка китайского st-link - ruclips.net/video/iC2-0Md-6yg/видео.html

  • @traveladventure427
    @traveladventure427 3 года назад

    Я сам решу мое или не мое.

  • @retro55i
    @retro55i 3 года назад

    Зачем миллион команд? На одном конце страны нажимаешь кнопку "ОБНОВИТЬ" на другом конце страны в микропроцессор stm32 залетает очередная версия программы и никаких команд или командных строк.

    • @cb_q
      @cb_q 3 года назад +2

      тз понятно, а детали?
      какая функциональность нужна об bootloader'а? запись прошивки в мк, ок. а нужно чтобы BL выдавал версию прошивки? нужно чтобы была возможность сохранить прошивку (с мк)? нужно чтобы BL проверял прошивку на целостность (т.е. не повреждена ли она)? как BL будет получать прошивку? - если на другом конце страны, то для этого нужен канал передачи данных, значит мобильный интернет, wifi, чего-нибудь еще. а значит BL нужно как-то настроить - откуда и как тянуть прошивку, желательно не захардкодить, а сделать настраиваемым, потому что все может случиться (и симка изменится, и домен для загрузки переехать).
      командную строку можно исключить, если написать свою утилиту обновленя на пк, которая будет все делать сама. Владимир даже предлагал ранее сделать прошивальщик аппаратным - подключил мк к нему, он его обнаружил, сам прошил на последнюю версию и все, даже комп не нужен. но без протокола обмена данными (между мк и тем, кто его будет прошивать) тут никак.

  • @WormsWolf1
    @WormsWolf1 3 года назад

    А как же MCUboot ?
    github.com/mcu-tools/mcuboot