STM32 Автономный загрузчик для обновления прошивки. Проверка концепта.

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

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

  • @Glebdolgov
    @Glebdolgov 4 года назад +5

    Очень полезная информация! Ждем продолжения этой темы.

  • @Shiover
    @Shiover 4 года назад +2

    Поздравляю с началом новой эпохи на ютубе. Спасибо за ваше большое дело. : )

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

    Познавательно, логично и грамотно! Спасибо!

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

    Ждём продолжения =)

  • @СергейТимошенко-о3ю

    По названию тема годная, лайк. Досмотрю вечером.

  • @denwerxampp4035
    @denwerxampp4035 4 года назад

    хорошая идея, как-то не задумывался даже об этом

  • @SevenNightdreemVeryPavlovny
    @SevenNightdreemVeryPavlovny 4 года назад +1

    Автор, спасибо за видео! То же такая же проблема была - не хочу тащить ноут в поле. Взял USB OTG, воткнул в телефон с андройдом stlink китайский. Все, программатор готов. Так же на андроид есть программа для заливки через юарт, правда ее в деле не проверял.

    • @ibrag2012
      @ibrag2012 4 года назад

      Прикольна ідея.

  • @user-jl7et8gx5u
    @user-jl7et8gx5u 4 года назад +1

    Спасибо. Полезная инф.

  • @chegleeff
    @chegleeff 4 года назад +1

    Интересно. Спасибо!

  • @user-ed9px3cz7g
    @user-ed9px3cz7g 4 года назад +2

    Прикрути к программатору mass storage чтоб бинарники шифрованные отправлять, чтоб никто не слил бинарник.

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

    Лет 5 назад пришлось поломать голову, но сделал таки автономный программатор по swd. Заливает тест-прошивку - тестирует - заливает рабочую прошивку (если все в порядке).

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

      Отлично. Очень полезная штука

  • @ОлексійКасьян-й3щ
    @ОлексійКасьян-й3щ 4 года назад

    Рекомендую проверить UART загрузчик при повышенной температуре. Столкнулся с ситуацией когда при температуре выше комнатной ЮАРТ загрузчик сильно сбоит. Приходилось включать кондиционер в помещениии для того чтобы обновить прошивку.

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

      Дунул на него феном паяльным. Вроде работает. Потом в термокамере проверим.

  • @dustymiller1178
    @dustymiller1178 4 года назад +1

    Класс. 👍

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

    Втыкнуть фигушку 1000 раз - делов то... :))) Надеюсь, хотя бы возникла идея в инициализации кода проверять что там ходок залил и не выдернул ли раньше времени фигушку. :)

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

    почему вы в настройках UART ставите 9 бит? ведь в документации указано configuration is: 8-bit,
    even parity and 1 Stop bit

  • @alekseikapustin8360
    @alekseikapustin8360 4 года назад

    Брр. Вспомнил как рожал бутлоадер под родимые PIC-и .

  • @Diger67
    @Diger67 4 года назад +1

    Есть не мало информации на просторах интернета по созданию загрузчика и записи прошивки с SD например. область загрузчика защищается от стирания. И если шаловливые ручки не полезут через штатные загрузчики, то все будет работать. При это достаточно скинуть заказчику файл firmware, а заказчику достаточно записать прошивку на SD и загрузить ее в устройство.

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

      Загрузчик можно написать какой угодно, более того, обычно у любого разработчика их написанных лежит на все случаи жизни. Вопрос в другом, держатель sd это место и деньги. Теперь доже 0.5 доллара умножьте на 1000 и ставить желание отпадет моментально. К тому же бывают условия эксплуатации... Да предложите на буровой установке ребятам обновлять прошивку через SD карточку когда на улице -30. Вас просто медведям скормят.

    • @ViacheslavMezentsev
      @ViacheslavMezentsev 4 года назад

      Это немного другое. Во-первых, не все конечные устройства содержат картоприёмник. Во-вторых, создание загрузчика для работы с sd-картой - это нетривиальная задача. Можно найти примеры в сети, я видел подобные, но они занимали около 20 Кбайт кода arm, что вряд ли будет приемлемо.
      Я сам делаю подобный загрузчик для загрузки hex-файлов (именно intel extended, не bin). И это не просто, если хочешь уложиться в несколько килобайт. У меня есть подобный загрузчик для avr, который в зависимости от конфигурации имеет размер от 2 до 4 Кбайт. Я пытаюсь перенести его алгоритм на arm. Вообще, у некоторых производителей контроллеров, например TI, уже лет 10 загрузчики бывают очень навороченными и поддерживают до 10 вариантов загрузки по разным интерфейсам, в том числе, используя mmc/sd. Если доделаю свой вариант, то выложу на github.

    • @Diger67
      @Diger67 4 года назад

      @@VladimirMedintsev Ну по цене программатор по любому выйдет дороже SD, во вторых вставить в разъем SD не сложнее чем попасть в разъем программатором. И скорее вас скормят медведям с вашим программатором. Это про минусы, плюсы описаны выше.

    • @Diger67
      @Diger67 4 года назад

      @@ViacheslavMezentsev Ну так чего мозг выносить, ставим на андроид CubeMXProgramer и сливаем хоть по UART, хоть по USB, хоть по CAN, хоть по SPI, если такой загрузчик есть на борту. Ну и так, не на всех платах есть свободный доступ к нужным пинам контроллера. Ну а уж если вы сами разрабатываете устройство, кто вам мешает поставить SD разъем за три копейки а не городить огород за 1500 - 2000 тысячи.

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

      @@Diger67 Да вы правы, идея отстой, будем ставить SD.

  • @intelektum
    @intelektum 4 года назад +1

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

  • @evgenold4120
    @evgenold4120 4 года назад

    По идее, в коммерческом устройстве делать обновление прошивки с помощью вспомогательных устройств не кошерно сейчас. Предполагаю, что надо для этих целей ставить какой-то дешевый дополнительный МК, который уже будет подкинутую ему через USB, microSD или Ethernet прошивку лить по UART в основой МК

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

      Кто это сказал что не кошерно?

    • @evgenold4120
      @evgenold4120 4 года назад

      @@VladimirMedintsev Ну вы себя поставьте на место потребителя. Купил например какую-то новогоднюю гирлянду. И тут приходит письмо от производителя, что он в новой прошивке изменил (улучшил) функционал, но чтобы её залить, надо открыть корпус, подцепить преобразователь USB-UART, замкнуть пару перемычек, скачать и запустить такую то программу.. Думаю это не для рядовых потребителей.

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

      Понятно. Спасибо.

  • @АлександрНОНЕ-х2п
    @АлександрНОНЕ-х2п 4 года назад

    Хорошая идея, очень полезно будет. Исходники будете выкладывать?

  • @МихаилТиунов-с7д
    @МихаилТиунов-с7д 4 года назад

    Вопрос немного не по теме. Делаю устройство, которое впоследствии необходимо внести в Госреестр средств измерений. И там есть требование об идентификации ПО микроконтроллера по МИ 3286-2010. Ну, т.е., я должен посчитать контрольную сумму ПО и вывести её на индикатор, а также - вписать её в Описание типа средств измерений. Таким образом - об дальнейшем обновлении ПО законными методами можно забыть. Суть вопроса к Вам как к МАСТЕРУ. Можно ли каким-то образом разделить прошивку микроконтроллера, например, на мерологически значимую часть, и на всё остальное. Метролигически значимую часть впоследствии не трогать, для неё посчитана и внесена в Реестр контрольная сумма.А всё остальное - чтобы можно было перешивать любыми способами?

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

      Я вам отвечу честно. Если попадается проект который необходимо внести в реестр средств измерения мы просто отказываемся от этого проекта. Причина простая я не знаю ни одного разработчика который бы попал в реестр средств измерения без использования незаконных приемов.
      Мы просто спрашиваем заказчика хочет ли он в последствии поверять изделие. Заказчик как правило совсем не хочет. Значит мы делаем индикатор. А индикатор поверять не надо и индикатор не вносится в реестр. Но индикатор может что-либо измерять весьма точно. Ну просто ещё ни одного раза усилия на внесение чего-либо в этот реестр не окупили себя.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 года назад

      @@VladimirMedintsev Я извиняюсь, а по сути вопроса - прошивку, принципе, можно разделить на 2 части ?

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

      Да, разумеется это возможно. Есть на канале ролик про передачу управления.

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

      Вот тут ruclips.net/video/z2ZjsM63yEo/видео.html рассказано как это делать. Там на примере загрузчика но и части точно так же.

    • @МихаилТиунов-с7д
      @МихаилТиунов-с7д 4 года назад

      @@VladimirMedintsev Спасибо !!!!! А по поводу внесения в Реестр. От кого отказываетесь - направляйте ко мне. Я как раз всю жизнь этим занимался.

  • @dvmavgoor
    @dvmavgoor 4 года назад +1

    В 2020 я бы наверное уже брал контроллеры с набортным USB, и ставил бы бутлоадер с DFU. Впрочем, я так и делаю.

  • @ogurezzz
    @ogurezzz 4 года назад +1

    Так в STM32 есть встроенный загрузчик в каждом МК? Я думал только в тарших сериях.

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

      Везде, во всех. Доплачивать не надо.

  • @ReWorked
    @ReWorked 4 года назад +1

    а нельзя просто по юсб залить iso фаил? как это реализовано на том же паяльнике ts100, тем более юсб добавит солидности устройству

    • @user-ed9px3cz7g
      @user-ed9px3cz7g 4 года назад

      У f030 нет usb

    • @ReWorked
      @ReWorked 4 года назад +2

      @@user-ed9px3cz7g если делать для кого то и знать что потом будет геморрой с прошивкой, не лучше ли сразу подобрать микроконтроллер с поддержкой usb ничего страшного что на 50 рублей дороже получится

    • @ReWorked
      @ReWorked 4 года назад

      @@Nidvoraich это нужно городить еще одну коробочку отправлять заказчику, объяснять как куда подключать) и коробочка одна, а устройств сотни. а ноутбуки и телефоны с отг шнурами это более распространенная штука, и людей шибко умных не нужно, зато их можно снарядить много)

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

    Существует автономный программатор который бы работал без загрузчика и загружал ПО например через SWD?

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

      Мы когда-то с Эдуардом Неткачевым над этой темой рпботали. Готовое решение пока только под Атмегу есть.

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

      Но если надо то за месяц- полтора могу сделать.

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

    Я еще пол года назад написал для себя загрузчик, в котором не надо переключать контакт boot. Часть программы , которая называется загрузчиком и лежит во втором секторе не перепрошивается. Проверял этот программатор через обычный переходник USB-UART, загонял туда новую программу (прошивку) кроме второго сектора stm32f205 .

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

      Поздравляю.

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

      @@VladimirMedintsev Для проверки этого программатора пришлось написать и компьютерную часть на Builder C++.

    • @stari40k
      @stari40k 4 года назад

      А я лет пять назад писал свой бутлоалер и прошивал stm32f107 по ethernet. И что?

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

      @@stari40k А контакт boot переключали? В этом вся фишка.

    • @stari40k
      @stari40k 4 года назад

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

  • @romaVeber
    @romaVeber 4 года назад

    а можно про rtc записать видео? потому-что смотрю в кубике у одних плат есть пин vbat, у других нет и у всех есть rtc. Вот хочется как-то подробно, и сам rtc и его резервные биты и тд.

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

      Вы откройте reference manual. Там про работу RTC очень хорошо написано без лишней воды.

    • @romaVeber
      @romaVeber 4 года назад

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

    • @intelektum
      @intelektum 4 года назад

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

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

    а почему не использовать USB к компьютеру любому и программк для прошивки?

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

      ну или даже USB-UART микруху поставить?

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

      Уже обсуждалось под другим видео. Это автономный программатор, который можно и заказчику дать и обновить сидя на мачте и все такое. Ну далеко не везде есть смысл это делать с ноутбука или сотового телефона. Есть несколько видео где этот вопрос поднимался и возвращаться простите не будем. Просто если у вас нет потребности в мобильности или автономности, то и мудрить ничего не надо, взять готовый программатор и использовать.

  • @Astinahsra
    @Astinahsra 4 года назад

    Почему в Кейл перешли? Вы же вроде в кубе работали?

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

      Я не знаю почему вы так решили.

    • @Astinahsra
      @Astinahsra 4 года назад

      @@VladimirMedintsev А что вообще про куб думаете?

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

      Есть видео где я его показываю. Мне он нравится. Хорошо о нем думаю.

    • @Astinahsra
      @Astinahsra 4 года назад

      @@VladimirMedintsev А по какой причине не используете?)

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

      Видеоролики которые вы видите на канале практически ничего не отражают из моей реальной работы. Ни разу и ни где я не показывал реальные исходники реальных проектов как в части схемотехники так и в части программирования. По этой причине вы не знаете что именно я использую.
      В видеороликах показывается и будет показываться Кейл, потому что он дефакто является популярнейшей средой в Ютубе. Специально посвященные CubeIDE ролики я показываю с кубом, ну это логично же. Меня в принципе не сильно интересует обзор IDE это просто инструмент. Может я Segger Studio использую. Кто его знает.

  • @thomasparker4109
    @thomasparker4109 4 года назад

    здравствуйте! У Вас как у профессионала , какая вилка зарплаты?

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

      Если вопрос ко мне, то я получаю чуть меньше 10 тысяч рублей.

    • @thomasparker4109
      @thomasparker4109 4 года назад

      @@VladimirMedintsev Я думал, по Вашей специальности , особенно такой специалист как Вы, будет получать 300 к

    • @thomasparker4109
      @thomasparker4109 4 года назад

      @@VladimirMedintsev спасибо за ответ

  • @avi-crakhome2524
    @avi-crakhome2524 4 года назад +2

    Прошивка для контроля целостности контактных соединений на плате с мк, проверка работоспособности самого мк, проверка типовых задержек выхлопа конечной платы, контроль входных линий, и так далее... Всё это должно проходить на этапе сборки, в тёплом помещении, с сытым и довольным жизнью сотрудником.
    Дело в том что такая прошивка занимает много места, а так-же требует дополнительного диагностического оборудования - которого в чистом поле явно не будет. К тому-же сама прошивка без возможности вывода диагностической информации - совершенно бесполезна. И тут одного единственного светодиода явно мало, тут нужен терминал - где будет выводится уже готовый чётко сформулированный список поломок, с указанием места на ПП и способом устранения. Всё это много весит, не всегда помещается с первого раза.
    А вот для реальной работы достаточно светодиодика. Зелёный - всё нормально, красный - снимай модуль и неси в мастерскую. Даже если владелец умеет использовать программатор - это всегда обезьяна. Он не способен изменить логику прошивки, он только кнопки нажимать умеет (да и то не каждый).
    По этому для полевых условий основная задача - целостность и актуальность прошивки. Возможность автоматического отката в случае очень активной обезьяны.
    А это уже совсем другая тема, на пату выпусков хватит.

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

      Щас этот сытый сотрудник прочитает и начнет требовать улучшения условий :-)))

    • @avi-crakhome2524
      @avi-crakhome2524 4 года назад +1

      @@VladimirMedintsev У многих получается раздвоиться и даже расстроиться. У Матвеева например, он-же доктор Дью, он-же где-то вокруг... Кажется это уже клиника. Гораздо приятнее когда это разные люди, так хотя-бы тараканы не бунтуют. Программатор с пиропатроном... Весело, но не надо.

    • @sozdatelEd
      @sozdatelEd 4 года назад

      @@VladimirMedintsev у Вас сотрудники "сытые"?!?!? а можно со своим обогревателем к Вам в штат?)))

  • @ibrag2012
    @ibrag2012 4 года назад

    Вчора взявся за SWIM (знайшов дуже дешеві stm8 але вони без завантажувача): весь день потратив на вивчення протоколу, а в вечорі подумав: мають існувати якісь готові прилади, перевірив: таки існують)

  • @stari40k
    @stari40k 4 года назад

    Мучают меня смутные сомнения по поводу 9и бит. Всегда думал что это ОБЩЕЕ количество бит данных. Перечитал RM0360 page598.
    Написано следующее : START бит, 8 или 9 бит данных LSB, потом 1 или 2 STOP bits.
    На странице #600 есть картинка с описанием, там нарисованы биты с 0го по 8й. Т. Е. Это партии бит. У вас 9и битый режим с этим самым партии битом и к стартовому биту оно отношения не имеет.

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

      Стартовые и стоповые биты не считаются. А вот паритет считается.

    • @avi-crakhome2524
      @avi-crakhome2524 4 года назад +1

      8 бит данных - это для текстового обмена, в этом случае остаётся достаточно пространства для управляющих символов.
      1+8 бит данных - это для бинарного обмена, доступна передача от 0x00 до 0xFF, девятый бит - это управляющий маркер команда/данные, или адрес/данные.

  • @expertkis
    @expertkis 4 года назад

    Ну плохое видео, но как уже писали ниже , в современных реалиях интереснее DFU или даже реализацию OTA посмотреть

    • @denwerxampp4035
      @denwerxampp4035 4 года назад

      блин, я даже не слышал про это. Погуглил тут, как круто

    • @expertkis
      @expertkis 4 года назад +1

      @@denwerxampp4035 не то слово. На f4 DFU вроде просто настроить, но не на чем сейчас проверить, а на f103 смещение надо похоже настраивать в линкере. Надо разобраться вобщем

  • @ВалераБородулин-д2ъ

    Ну если 1000 штук для заказчика, значит есть у него чуть денег купить планшет на виде и ходи шей каждое устройство, а если бы эти устройства сразу прошить по CAN или RS485 полезное дело.

    • @user-ed9px3cz7g
      @user-ed9px3cz7g 4 года назад

      Это сложно для заказчика. А если апдейты будут еженедельными?

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

      А теперь просто представьте буровую установку, -30 градусов и вы с планшетом на ветру. Работа мечты. Не все устройства работают в уютных комнатах. Иногда и подключить разъем очень тяжело не говоря уже о том, чтобы на сотовом или планшет ее пальчиком попадать.

    • @user-ed9px3cz7g
      @user-ed9px3cz7g 4 года назад

      @@VladimirMedintsevИли устройство может быть камерой в вольере с тиграми.

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

      @@user-ed9px3cz7g уверяю вас тигры по сравнению с нефтяниками гораздо менее опасны.

    • @user-ed9px3cz7g
      @user-ed9px3cz7g 4 года назад

      @@VladimirMedintsev Тигры водятся только в дикой природе, а нефтяники везде, если нефтяник попадает в воду, нефтяник не становится мокрой, вода становится нефтью. 😜

  • @adminroot1345
    @adminroot1345 4 года назад

    Попробуйте esp8266 esp32 + micropython там есть технология удаленной прошивки web repl