STM32. Интерфейс SWD. Создание собственного программатора - отладчика.

Sdílet
Vložit
  • čas přidán 1. 04. 2021
  • Наверняка многие зрители этого канала интересовались тем, как работает интерфейс SWD микроконтроллеров STMicroelectronics. В ролике рассказывается о том, где получить информацию необходимую для создания собственной реализации программатора - отладчика.
    Канал в телеграмм - t.me/vladimir_medintsev
    Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
    Канал на RuTube - rutube.ru/channel/1797552/
    Канал на CZcams - / vladimirmedintsev
    ------------------------------------------
    Если вы хотите поддержать автора канала номер карты Сбер:
    2202-2023-2480-4008
    ------------------------------------------
  • Věda a technologie

Komentáře • 94

  • @sergeysemenkov6474
    @sergeysemenkov6474 Před 2 měsíci

    Спасибо, долго искал эту информацию, а Вы все подробно объяснили.

  • @MikhailGoncharov-tl4cr
    @MikhailGoncharov-tl4cr Před 2 měsíci

    золотой вы человек важную проблему разобрали

  • @vernnms78
    @vernnms78 Před 3 lety +3

    Спасибо за информацию! Всегда полезно и любопытно!

  • @ArthurIslamRU
    @ArthurIslamRU Před 3 lety +1

    Спасибо большое, Уважаемый Владимир.
    С удовольствием смотрим, как и раньше не успеваем за Вами.

  • @user-ee8tg1wg5y
    @user-ee8tg1wg5y Před 3 lety +3

    Спасибо за ваш труд!

  • @michzouthins1657
    @michzouthins1657 Před 3 lety +1

    Спасибо большое за ваш труд!

  • @engineer39notebook
    @engineer39notebook Před 3 lety +7

    Спасибо большое за видео! Растите бороду и не болейте!)

  • @vitae-dw9ys
    @vitae-dw9ys Před 3 lety +1

    Пока тягаю кубики FLProg и вижу в этом тупик. Потихоньку перехожу на Си и дается это тяжело. Спасибо большое за такое глубокое видео.

  • @user-ld7vr3fz3p
    @user-ld7vr3fz3p Před 3 lety +4

    Пока что "в поле" использую ZFlasher для ST. Но за хорошую подсказку - спасибо! Не всегда есть возможность копаться, искать.
    А так - видео посмотрел, в памяти отложилось.

  • @Maxnicknameable
    @Maxnicknameable Před 3 lety +3

    Делаю сейчас свой автономный программатор через UART по идеям из ваших видео. Та часть программы которая заливает прошивку достаточно быстро получилась. А вот написание кода для работа с экраном, клавиатурой, аккумулятором, freertoos, fatfs, кольцевым буфером отнимает огромное количество времени. Собственно вопроса нет, просто спасибо!)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Очень хорошо, что получается. Я искренне рад.

  • @vitgo
    @vitgo Před 3 lety +3

    ОО ! Интересная тема !

  • @pomanpomahovich9265
    @pomanpomahovich9265 Před 3 lety +1

    Глаза покрасневшие очередная бессонная ночь программиста)))

  • @davidkain9046
    @davidkain9046 Před 3 lety +1

    Тут с самой стмкой разобраться бы , а вы про собственный отладчик)) спасибо за видео

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +3

      Что там с этим микроконтроллером разбираться? Берите reference manual и читайте от корки до корки. Этого будет вполне достаточно для полного освоения STM32.

    • @igorgolovnya7854
      @igorgolovnya7854 Před 3 lety +2

      @@VladimirMedintsev LOL ))

  • @Shiover
    @Shiover Před 3 lety +2

    Спасибо за ещё одну полезную карту сокровищ. Главное знать где копать. : )

  • @avi-crakhome2524
    @avi-crakhome2524 Před 3 lety +4

    Самый страшный баг swd - полное отсутствие атомарности. Дело в том что ядро работает гораздо быстрее чем внутренний отладчик, который кстати получает тактовую снаружи!! Дык вот, арбитраж у отладчика безусловный, доступ тоже безусловный - буквально вовсе места, а вот синхронизация плавающая.
    Это приводит к тому что отладчик выставляет адрес и чуть позже данные - по спаду синхры, и всегда успевает выставить верные данные до подъёма синхры - момент записи. Но вот в промежутке творится всякая фигня.
    Если читать ядром конкретный адрес, то можно успеть вытащить 30 разных значений, до момента - когда содержимое станет стабильным.
    По этой причине регистры паникующей периферии обрабатываются по полям (через маску). И никогда не пишутся целиком.
    При общении через структуру памяти - нужны отдельные флаги (только запись - только чтение).
    Читаем флаг, читаем поле, читаем флаг: флаг не менялся - значит содержимое верно.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Да, абсолютно верно.

    • @andrew3482
      @andrew3482 Před 3 lety

      Подробнее расскажи чтобы проверить, но звучит как бред.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      @@andrew3482 это не единственный глюк.

    • @avi-crakhome2524
      @avi-crakhome2524 Před 3 lety +1

      @@andrew3482 Да уж куда подробнее... Это нужно объяснять технологию синхронизации данных на границе разных частотных доменов. А после просветления - кирпичом по голове, в отладчике всего этого нет.
      Потому как jtag родился задолго до fpga, для устройств исключительно с внешним клоком. И с тех пор почти не менялся.

    • @andrew3482
      @andrew3482 Před 3 lety

      @@avi-crakhome2524 что значит внутренний отладчик получает тактовую частоту снаружи? SWDCLK что ли? это просто клок для приема данных по SWD. (что бы вам было понятнее как у SPI Slave) А отладочный модуль тактируется от DAPCLK и он внутренний.

  • @DmitryTan
    @DmitryTan Před 3 lety

    Познавательно

  • @alikermani7940
    @alikermani7940 Před 3 lety

    Мне очень нравится ваш канал. Можете делать видео на тему микроконтроллеры LPC также?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      LPC - Low Pin Count bus?
      LPC - NXP microcontrollers?
      LPC - Low Power Consumption?
      LPC - Local Procedure Call?
      Как я должен догадаться о чем это вы?

    • @alikermani7940
      @alikermani7940 Před 3 lety

      @@VladimirMedintsev О простите. Я имел в виду NXP microcontrollers как LPC17XX и так далее

  • @user-ki2wm5hd4e
    @user-ki2wm5hd4e Před 3 lety

    Здравствуйте, не могу некоторую информацию в интернете найти. Может, вы по опыту знаете. Может ли STM32F4 общаться с eMMC 5.1 по 1bit шине? И если да, то где про это почитать?

  • @trollquantum
    @trollquantum Před 3 lety +4

    Чудово. Вподобайка.

  • @Mr.Leeroy
    @Mr.Leeroy Před 11 měsíci

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

  • @johnkoffee
    @johnkoffee Před 3 lety +1

    Стоп кадр на 2 секунде: "Хабар принёс?"
    Владимир, не в обиду, а отсылки ради)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Я лично не понял о чем это вы вообще.

    • @johnkoffee
      @johnkoffee Před 3 lety

      @@VladimirMedintsev в игре сталкер есть персонаж Сидорович. Вы на него похожи по сидячей позе и бороде. А игрока он приветствовал фразой "хабар принёс?"

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Понятно, я просто не играю, не знаю что там творится.

  • @stm32msk48
    @stm32msk48 Před 3 lety +2

    можем повторить

  • @WebMaxat
    @WebMaxat Před 3 lety

    Здравствуйте.
    С ядром Cortex-R не сталкивались? На нем есть фишки типа есс памяти и резервирования процессора.
    Ну и естественно расширенный набор команд.
    Но стм, как я понял, на нем не производят контроллеры, в основном TI или renesas.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      И в чем вопрос? Вы проводите опрос общественного мнения?

    • @WebMaxat
      @WebMaxat Před 3 lety

      @@VladimirMedintsev Я подумал что раз вы интересуетесь углубленным изучением арм, то может и сталкивались с данной архитектурой.
      А может и из ваших зрителей кто то работал, оставит свое впечатление.

    • @user-fe8tp5jx7y
      @user-fe8tp5jx7y Před 3 lety

      СТ Микроэлектроникс выпускает только Кортекс-М и Кортекс-А+Кортекс-М чипы.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      @@user-fe8tp5jx7y Ну мир на STM не заканчивается. Я активно NXP и прочих использую.

    • @user-fe8tp5jx7y
      @user-fe8tp5jx7y Před 3 lety +1

      @@VladimirMedintsev я знаю, т. к. у меня основной мк от Инфинеон. Ещё Миландр на кафедре. СТМ просто очень популярны в гражданском и бытовом сегментах.

  • @liftoman_777
    @liftoman_777 Před rokem

    А может кто-нибудь подсказать: можно ли ST-LINKом зашить МК lgt8f328? (там написано что протокол SWD)

  • @DRDRPETR
    @DRDRPETR Před 3 lety

    Уважаемый Владимир, большое спасибо вам за ваши видео! Хотел спросить вас о некоторых вещах. Во-первых, есть ли жизнь за пределами STMicroelectronics? Если да, то возможно ли её освещение со стороны вашего опыта? Во-вторых, как вы смотрите на встраивание виртуальных машин интерпретаторов в микроконтроллеры? Был ли опыт с Forth? И, с вашего позволения, третье - Возможен ли с вашей точки зрения альтернативный CubeMX подход к графической и наглядной конфигурации периферии контроллеров? А именно, подход, который будет демонстрировать значительную часть информации из даташита в процессе настройки и, соответственно, поможет лучше представить работу периферии, а не будет скрывать её от разработчика. Большое спасибо.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Да, жизнь есть. И есть куча микроконтроллеров и их производителей. Освещать на канале их пока не планирую. Причина проста, ролик с микроконтроллерами (к примеру) NXP в виду не сильно большой популярности последних у радиолюбителей смотреть будет сильно меньше народа, а значит и доход мой от рекламы уменьшится. И зачем мне это? Делать надо попсу типа ардуино ее смотрят и платят.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      На встраиваемые виртуальные машины я смотрю крайне плохо. Очень плохо.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Альтернативный CubeMX графический конфигуратор смысла не имеет. Профессионал многое знает и может свободно ориентироваться в документации и периферии. А новички и любители производителей МК не волнуют в принципе. Их ценность ничтожна. Это я к тому, что ничего и ничем не скрыто. Инструмент достаточен.

  • @volodink
    @volodink Před 3 lety

    Доброго дня. Можно как то прояснить, как добавить беспроводную отладку для МК.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Я не понял вопроса.

    • @volodink
      @volodink Před 3 lety

      @@VladimirMedintsev Так, ладно. Вот есть stlink, он по usb подключается. А иногда нет usb, изделие стоит на испытаниях например, но хочется его перешивать, отлаживать и запускать например совместно с Tracealyzer. Есть ли какие вменяемые варианты отладчиков по wifi например или подобное?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Собственно опять не понял, а кто мешает пробросить USB через Ethernet? Ну как бы и пользуйтесь.

  • @ndrejtroitskij4061
    @ndrejtroitskij4061 Před 2 lety

    Добрый день! Надеюсь вопрос дойдет.
    Большое спасибо - все здорово. Со всеми вопросами разобрался кроме одного:
    В проекте примеры алгоритма для двух контроллеров, а как достать алгоритм из "flm" для других контроллеров?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 2 lety

      Я видимо что-то не понял. FLM это что?

    • @ndrejtroitskij4061
      @ndrejtroitskij4061 Před 2 lety

      @@VladimirMedintsev FLM - это файл алгоритмов для Keil в котором сложены все алгоритмы программирования для некоторого семейства. В проекте "DAPProg-master" используются "С" файлы с бинарным кодом алгоритма (который загружается в контроллер) и структурой описания точек входа. Файлы FLM есть в Keil для большого количества контроллеров, а бинарный код алгоритма создать пока не получается. Я думаю, что есть какой-то способ "достать" алгоритмы из FLM (если знать его структуру) и надеюсь, что Вы владеете этими знаниями или информацией о том где это можно найти. Гугл пока не помог.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 2 lety

      @@ndrejtroitskij4061 Понял, я не располагаю такой информацией.

    • @ndrejtroitskij4061
      @ndrejtroitskij4061 Před 2 lety

      @@VladimirMedintsev Жаль. Может Вы знаете другой способ создания файлов алгоритма для разных контроллеров?

  • @rabbitchocolate2599
    @rabbitchocolate2599 Před 3 lety +1

    А есть какие нибудь новости когда цены вернутся на нормальный уровень? Осенью заказывали партию 103 1к около 1$ за шт, сейчас просят ~4$.У nxp и infineon тоже дорого, можно ещё немного добавить и взять полноценный x86 компьютер )

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Цены на прежний уровень больше не вернутся никогда. Они, конечно, снизятся, но возврата к прошлым ценам не будет никогда.

    • @chipsoft1
      @chipsoft1 Před 3 lety +2

      Это еще шаровые цены, нужно брать пока по 4. 105-ые уже за 25 - 30 долл перешагнули

  • @user-rx4rp5yb5j
    @user-rx4rp5yb5j Před 3 lety

    А что происходит на Али с STM32 - цены увеличились в 6 раз и даже по таким ценам ничего не купить ибо продавцы отвечают что на складе ничего нет и скоро будут но очень дорого? Причем Atmel можно купить по старым ценам.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Не только на али, везде цена увеличилась. Еще с осени кризис и дефицит чипов, мы еще в ноябре на год вперёд закупились.

    • @sozdatelEd
      @sozdatelEd Před 3 lety +1

      не скажите. третий раз заказываю ATMega32 и продавцы отписываются что цена поднялась и надо доплатить. или отписываются что нет на складах. Так что стабильно со всеми МК какая-то напряжёнка

    • @user-rx4rp5yb5j
      @user-rx4rp5yb5j Před 3 lety

      @@sozdatelEd - а ну тогда успокоили - а то я думал что на stm32 только крест поставили. Я уже не заказываю - понял что бесполезно, уже неделю переписываюсь с продавцами и понял что и это бесполезно - ибо они работают со складов и они сами не знают что со складов кто-то все выгреб.

  • @c2n2402
    @c2n2402 Před 3 lety

    Отладка это очень хорошо :)
    Но у меня так и не получилось запустить следующую связку, для отладки на железе:
    QTCreator (+bare metal) + STLink/Discovery + STM32F103.
    Может есть у кого опыт запуска на винде?
    Находил инструкцию для линуксов, но она сводится к apt get и "как нарисовать сову"...
    Кейл не понравился, atolic - что-то глючил...
    Сейчас думаю вернуться к STMкам, да и миландровский чип есть...
    Появилась какая то STM IDE, но зверинец сред не хочу разводить.
    ЗЫ: я новорег на вашем канале. Мне нравится :)
    Может есть смысл сделать/обновить руководство для новичков старт в STM, в том числе для ардуинщиков - переростков :)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Хотите вы или нет, но IDE типа Cube, Keil, Segger рано или поздно вам ставить придется. Как понадобится полноценная отладка так и придется.
      Что касается канала, то это просто мой блог. Несмотря на то, что я периодически что-то выпускаю для начинающих, это не является основной темой. Больше это все-таки материалы для более опытной аудитории.

    • @c2n2402
      @c2n2402 Před 3 lety

      @@VladimirMedintsev, да это к сожалению неизбежно. Прийдется к Атмел студии, Vivado и QT что то добавить...
      Можно вообще без отладчика разрабатывать, что я и не так давно делал с 1887ВЕ4У, являющимся функциональным аналогом ATmega8535. И 1887ВЕ7Т = atm128 со своими приколами...
      Но уж больно велик соблазн пилить код в одной среде: и прошивку железки и софт для компа управляющий этой железкой.
      А с учетом что миландр уверяет, что их микрухи лицензированы ARM....
      На Кейл не хочу переходить, т. к. если труды моей диссертации пойдут, то скорее всего я не подпаду под их лицензирование. С fusion 360 вроде как попроще будет. QT - тоже под вопросом, но т. к. они имеют версию "Comunity" то договориться с ними будет проще.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Договориться с QT... Это хорошая шутка.
      В Миландр даже не суйтесь. Это страшная яма с крокодилами.
      Код можно делать и отлаживать в чем угодно, а потом в финале откомпилируете в бесплатной CubeIDE и лицензионно вы чисты.

  • @secondeditionregeneration6798

    11:00 32f103 программатор... только подумал(мысли прочитал)... Есть ф0- ф4 дискавери...нет Маленького программатора на гГолубой_ПЕЛЮЛЕ (аля своими руками.. спалил/статика не жалко)...

  • @cb_q
    @cb_q Před 3 lety +1

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

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +2

      Вот для "полей" эту тему и прорабатывал.

  • @sergelsv5470
    @sergelsv5470 Před 3 lety +1

    А с Black Magic Probe не баловались? github.com/blacksphere/blackmagic/wiki

  • @pomanpomahovich9265
    @pomanpomahovich9265 Před 3 lety

    а юридический интерфейс есть ??)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      И юридический тоже есть.

    • @pomanpomahovich9265
      @pomanpomahovich9265 Před 3 lety +1

      @@VladimirMedintsev это когда программист заставил работать STM32 без отдыха нарушая рабочей кодекс кибернетики

    • @cb_q
      @cb_q Před 3 lety +1

      @@pomanpomahovich9265 xeon'ам не говорите, а то они в профсоюз вступят)

  • @zel4053
    @zel4053 Před 3 lety

    Блин, думал ошибся каналом, ан нет всего лишь имидж новый.

  • @sledleo
    @sledleo Před 3 lety +1

    Понятно, что ничего непонятно

  • @redtex
    @redtex Před 3 lety

    Нельзя без бороды.

  • @xow998
    @xow998 Před 3 lety

    Как главный двоечник задаю вопрос, а где собственно списать? Это опять рыться в документации, ворошить чужой код, набивать себе шишки..., это же не наш метод! :)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Я не совсем понял что именно вы хотели списать...

    • @xow998
      @xow998 Před 3 lety

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

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Так вон же он показан в составе CMSIS. Компилируйте и используйте. Исходные коды до последней строчки.

    • @xow998
      @xow998 Před 3 lety

      @@VladimirMedintsev , ну все равно же не соответствует, моим запросам, автор то не экстрасенс:) Ну а если серьезно, то вас всегда смотреть интересно!