Тёмный

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

Vladimir Medintsev
Подписаться 35 тыс.
Просмотров 13 тыс.
50% 1

Наверняка многие зрители этого канала интересовались тем, как работает интерфейс SWD микроконтроллеров STMicroelectronics. В ролике рассказывается о том, где получить информацию необходимую для создания собственной реализации программатора - отладчика.
Канал в телеграмм - t.me/vladimir_medintsev
Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
Канал на RuTube - rutube.ru/channel/1797552/
Канал на RU-vid - / vladimirmedintsev
------------------------------------------
Если вы хотите поддержать автора канала номер карты Сбер:
2202-2023-2480-4008
------------------------------------------

Наука

Опубликовано:

 

1 апр 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 94   
@sergeysemenkov6474
@sergeysemenkov6474 Месяц назад
Спасибо, долго искал эту информацию, а Вы все подробно объяснили.
@MikhailGoncharov-tl4cr
@MikhailGoncharov-tl4cr Месяц назад
золотой вы человек важную проблему разобрали
@engineer39notebook
@engineer39notebook 3 года назад
Спасибо большое за видео! Растите бороду и не болейте!)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Спасибо большое.
@vernnms78
@vernnms78 3 года назад
Спасибо за информацию! Всегда полезно и любопытно!
@user-ee8tg1wg5y
@user-ee8tg1wg5y 3 года назад
Спасибо за ваш труд!
@ArthurIslamRU
@ArthurIslamRU 3 года назад
Спасибо большое, Уважаемый Владимир. С удовольствием смотрим, как и раньше не успеваем за Вами.
@michzouthins1657
@michzouthins1657 3 года назад
Спасибо большое за ваш труд!
@pomanpomahovich9265
@pomanpomahovich9265 3 года назад
Глаза покрасневшие очередная бессонная ночь программиста)))
@user-ld7vr3fz3p
@user-ld7vr3fz3p 3 года назад
Пока что "в поле" использую ZFlasher для ST. Но за хорошую подсказку - спасибо! Не всегда есть возможность копаться, искать. А так - видео посмотрел, в памяти отложилось.
@vitae-dw9ys
@vitae-dw9ys 3 года назад
Пока тягаю кубики FLProg и вижу в этом тупик. Потихоньку перехожу на Си и дается это тяжело. Спасибо большое за такое глубокое видео.
@vitgo
@vitgo 3 года назад
ОО ! Интересная тема !
@Shiover
@Shiover 3 года назад
Спасибо за ещё одну полезную карту сокровищ. Главное знать где копать. : )
@Maxnicknameable
@Maxnicknameable 3 года назад
Делаю сейчас свой автономный программатор через UART по идеям из ваших видео. Та часть программы которая заливает прошивку достаточно быстро получилась. А вот написание кода для работа с экраном, клавиатурой, аккумулятором, freertoos, fatfs, кольцевым буфером отнимает огромное количество времени. Собственно вопроса нет, просто спасибо!)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Очень хорошо, что получается. Я искренне рад.
@davidkain9046
@davidkain9046 3 года назад
Тут с самой стмкой разобраться бы , а вы про собственный отладчик)) спасибо за видео
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Что там с этим микроконтроллером разбираться? Берите reference manual и читайте от корки до корки. Этого будет вполне достаточно для полного освоения STM32.
@igorgolovnya7854
@igorgolovnya7854 3 года назад
@@VladimirMedintsev LOL ))
@DmitryTan
@DmitryTan 3 года назад
Познавательно
@avi-crakhome2524
@avi-crakhome2524 3 года назад
Самый страшный баг swd - полное отсутствие атомарности. Дело в том что ядро работает гораздо быстрее чем внутренний отладчик, который кстати получает тактовую снаружи!! Дык вот, арбитраж у отладчика безусловный, доступ тоже безусловный - буквально вовсе места, а вот синхронизация плавающая. Это приводит к тому что отладчик выставляет адрес и чуть позже данные - по спаду синхры, и всегда успевает выставить верные данные до подъёма синхры - момент записи. Но вот в промежутке творится всякая фигня. Если читать ядром конкретный адрес, то можно успеть вытащить 30 разных значений, до момента - когда содержимое станет стабильным. По этой причине регистры паникующей периферии обрабатываются по полям (через маску). И никогда не пишутся целиком. При общении через структуру памяти - нужны отдельные флаги (только запись - только чтение). Читаем флаг, читаем поле, читаем флаг: флаг не менялся - значит содержимое верно.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Да, абсолютно верно.
@andrew3482
@andrew3482 3 года назад
Подробнее расскажи чтобы проверить, но звучит как бред.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
@@andrew3482 это не единственный глюк.
@avi-crakhome2524
@avi-crakhome2524 3 года назад
@@andrew3482 Да уж куда подробнее... Это нужно объяснять технологию синхронизации данных на границе разных частотных доменов. А после просветления - кирпичом по голове, в отладчике всего этого нет. Потому как jtag родился задолго до fpga, для устройств исключительно с внешним клоком. И с тех пор почти не менялся.
@andrew3482
@andrew3482 3 года назад
@@avi-crakhome2524 что значит внутренний отладчик получает тактовую частоту снаружи? SWDCLK что ли? это просто клок для приема данных по SWD. (что бы вам было понятнее как у SPI Slave) А отладочный модуль тактируется от DAPCLK и он внутренний.
@trollquantum
@trollquantum 3 года назад
Чудово. Вподобайка.
@alikermani7940
@alikermani7940 3 года назад
Мне очень нравится ваш канал. Можете делать видео на тему микроконтроллеры LPC также?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
LPC - Low Pin Count bus? LPC - NXP microcontrollers? LPC - Low Power Consumption? LPC - Local Procedure Call? Как я должен догадаться о чем это вы?
@alikermani7940
@alikermani7940 3 года назад
@@VladimirMedintsev О простите. Я имел в виду NXP microcontrollers как LPC17XX и так далее
@Mr.Leeroy
@Mr.Leeroy 10 месяцев назад
подружить бы ESPLink и SWD, да подобные задумки ох как небыстро осуществляю.. шустро разбираться в чужом коде до сих пор не выходит.
@johnkoffee
@johnkoffee 3 года назад
Стоп кадр на 2 секунде: "Хабар принёс?" Владимир, не в обиду, а отсылки ради)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Я лично не понял о чем это вы вообще.
@johnkoffee
@johnkoffee 3 года назад
@@VladimirMedintsev в игре сталкер есть персонаж Сидорович. Вы на него похожи по сидячей позе и бороде. А игрока он приветствовал фразой "хабар принёс?"
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Понятно, я просто не играю, не знаю что там творится.
@user-ki2wm5hd4e
@user-ki2wm5hd4e 3 года назад
Здравствуйте, не могу некоторую информацию в интернете найти. Может, вы по опыту знаете. Может ли STM32F4 общаться с eMMC 5.1 по 1bit шине? И если да, то где про это почитать?
@stm32msk48
@stm32msk48 3 года назад
можем повторить
@DRDRPETR
@DRDRPETR 3 года назад
Уважаемый Владимир, большое спасибо вам за ваши видео! Хотел спросить вас о некоторых вещах. Во-первых, есть ли жизнь за пределами STMicroelectronics? Если да, то возможно ли её освещение со стороны вашего опыта? Во-вторых, как вы смотрите на встраивание виртуальных машин интерпретаторов в микроконтроллеры? Был ли опыт с Forth? И, с вашего позволения, третье - Возможен ли с вашей точки зрения альтернативный CubeMX подход к графической и наглядной конфигурации периферии контроллеров? А именно, подход, который будет демонстрировать значительную часть информации из даташита в процессе настройки и, соответственно, поможет лучше представить работу периферии, а не будет скрывать её от разработчика. Большое спасибо.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Да, жизнь есть. И есть куча микроконтроллеров и их производителей. Освещать на канале их пока не планирую. Причина проста, ролик с микроконтроллерами (к примеру) NXP в виду не сильно большой популярности последних у радиолюбителей смотреть будет сильно меньше народа, а значит и доход мой от рекламы уменьшится. И зачем мне это? Делать надо попсу типа ардуино ее смотрят и платят.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
На встраиваемые виртуальные машины я смотрю крайне плохо. Очень плохо.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Альтернативный CubeMX графический конфигуратор смысла не имеет. Профессионал многое знает и может свободно ориентироваться в документации и периферии. А новички и любители производителей МК не волнуют в принципе. Их ценность ничтожна. Это я к тому, что ничего и ничем не скрыто. Инструмент достаточен.
@WebMaxat
@WebMaxat 3 года назад
Здравствуйте. С ядром Cortex-R не сталкивались? На нем есть фишки типа есс памяти и резервирования процессора. Ну и естественно расширенный набор команд. Но стм, как я понял, на нем не производят контроллеры, в основном TI или renesas.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
И в чем вопрос? Вы проводите опрос общественного мнения?
@WebMaxat
@WebMaxat 3 года назад
@@VladimirMedintsev Я подумал что раз вы интересуетесь углубленным изучением арм, то может и сталкивались с данной архитектурой. А может и из ваших зрителей кто то работал, оставит свое впечатление.
@user-fe8tp5jx7y
@user-fe8tp5jx7y 3 года назад
СТ Микроэлектроникс выпускает только Кортекс-М и Кортекс-А+Кортекс-М чипы.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
@@user-fe8tp5jx7y Ну мир на STM не заканчивается. Я активно NXP и прочих использую.
@user-fe8tp5jx7y
@user-fe8tp5jx7y 3 года назад
@@VladimirMedintsev я знаю, т. к. у меня основной мк от Инфинеон. Ещё Миландр на кафедре. СТМ просто очень популярны в гражданском и бытовом сегментах.
@rabbitchocolate2599
@rabbitchocolate2599 3 года назад
А есть какие нибудь новости когда цены вернутся на нормальный уровень? Осенью заказывали партию 103 1к около 1$ за шт, сейчас просят ~4$.У nxp и infineon тоже дорого, можно ещё немного добавить и взять полноценный x86 компьютер )
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Цены на прежний уровень больше не вернутся никогда. Они, конечно, снизятся, но возврата к прошлым ценам не будет никогда.
@chipsoft1
@chipsoft1 3 года назад
Это еще шаровые цены, нужно брать пока по 4. 105-ые уже за 25 - 30 долл перешагнули
@cb_q
@cb_q 3 года назад
воу-воу, так и до ботнета недалеко: когда один мк перепрошивает (заражает) следующий в цепочке (сарказм). а тема довольно крута. как уже ранее отмечалось, прошивка одного мк из другого полезна для массового обновления или отката прошивки в полях, а отладка дает огромный потенциал для автоматизированных тестов в железе. стенд состоящий из двух мк - один тестируемый, второй - что производит тест. для ночных сборок самое то (каждый чих тестировать никакого flash'а не хватит, а раз в сутки или по запросу - отличный способ зафиксировать работоспособность правок или новой функциональности). при чем тестировать можно как работу прошивки в целом, так и пошагово (используя отладчик), т.е. проверяя состояние мк на момент останова.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Вот для "полей" эту тему и прорабатывал.
@ndrejtroitskij4061
@ndrejtroitskij4061 2 года назад
Добрый день! Надеюсь вопрос дойдет. Большое спасибо - все здорово. Со всеми вопросами разобрался кроме одного: В проекте примеры алгоритма для двух контроллеров, а как достать алгоритм из "flm" для других контроллеров?
@VladimirMedintsev
@VladimirMedintsev 2 года назад
Я видимо что-то не понял. FLM это что?
@ndrejtroitskij4061
@ndrejtroitskij4061 2 года назад
@@VladimirMedintsev FLM - это файл алгоритмов для Keil в котором сложены все алгоритмы программирования для некоторого семейства. В проекте "DAPProg-master" используются "С" файлы с бинарным кодом алгоритма (который загружается в контроллер) и структурой описания точек входа. Файлы FLM есть в Keil для большого количества контроллеров, а бинарный код алгоритма создать пока не получается. Я думаю, что есть какой-то способ "достать" алгоритмы из FLM (если знать его структуру) и надеюсь, что Вы владеете этими знаниями или информацией о том где это можно найти. Гугл пока не помог.
@VladimirMedintsev
@VladimirMedintsev 2 года назад
@@ndrejtroitskij4061 Понял, я не располагаю такой информацией.
@ndrejtroitskij4061
@ndrejtroitskij4061 2 года назад
@@VladimirMedintsev Жаль. Может Вы знаете другой способ создания файлов алгоритма для разных контроллеров?
@user-ns9ku6gy2f
@user-ns9ku6gy2f 3 года назад
Отладка это очень хорошо :) Но у меня так и не получилось запустить следующую связку, для отладки на железе: QTCreator (+bare metal) + STLink/Discovery + STM32F103. Может есть у кого опыт запуска на винде? Находил инструкцию для линуксов, но она сводится к apt get и "как нарисовать сову"... Кейл не понравился, atolic - что-то глючил... Сейчас думаю вернуться к STMкам, да и миландровский чип есть... Появилась какая то STM IDE, но зверинец сред не хочу разводить. ЗЫ: я новорег на вашем канале. Мне нравится :) Может есть смысл сделать/обновить руководство для новичков старт в STM, в том числе для ардуинщиков - переростков :)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Хотите вы или нет, но IDE типа Cube, Keil, Segger рано или поздно вам ставить придется. Как понадобится полноценная отладка так и придется. Что касается канала, то это просто мой блог. Несмотря на то, что я периодически что-то выпускаю для начинающих, это не является основной темой. Больше это все-таки материалы для более опытной аудитории.
@user-ns9ku6gy2f
@user-ns9ku6gy2f 3 года назад
@@VladimirMedintsev, да это к сожалению неизбежно. Прийдется к Атмел студии, Vivado и QT что то добавить... Можно вообще без отладчика разрабатывать, что я и не так давно делал с 1887ВЕ4У, являющимся функциональным аналогом ATmega8535. И 1887ВЕ7Т = atm128 со своими приколами... Но уж больно велик соблазн пилить код в одной среде: и прошивку железки и софт для компа управляющий этой железкой. А с учетом что миландр уверяет, что их микрухи лицензированы ARM.... На Кейл не хочу переходить, т. к. если труды моей диссертации пойдут, то скорее всего я не подпаду под их лицензирование. С fusion 360 вроде как попроще будет. QT - тоже под вопросом, но т. к. они имеют версию "Comunity" то договориться с ними будет проще.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Договориться с QT... Это хорошая шутка. В Миландр даже не суйтесь. Это страшная яма с крокодилами. Код можно делать и отлаживать в чем угодно, а потом в финале откомпилируете в бесплатной CubeIDE и лицензионно вы чисты.
@volodink
@volodink 3 года назад
Доброго дня. Можно как то прояснить, как добавить беспроводную отладку для МК.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Я не понял вопроса.
@volodink
@volodink 3 года назад
@@VladimirMedintsev Так, ладно. Вот есть stlink, он по usb подключается. А иногда нет usb, изделие стоит на испытаниях например, но хочется его перешивать, отлаживать и запускать например совместно с Tracealyzer. Есть ли какие вменяемые варианты отладчиков по wifi например или подобное?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Собственно опять не понял, а кто мешает пробросить USB через Ethernet? Ну как бы и пользуйтесь.
@secondeditionregeneration6798
@secondeditionregeneration6798 3 года назад
11:00 32f103 программатор... только подумал(мысли прочитал)... Есть ф0- ф4 дискавери...нет Маленького программатора на гГолубой_ПЕЛЮЛЕ (аля своими руками.. спалил/статика не жалко)...
@liftoman_777
@liftoman_777 Год назад
А может кто-нибудь подсказать: можно ли ST-LINKом зашить МК lgt8f328? (там написано что протокол SWD)
@VladimirMedintsev
@VladimirMedintsev Год назад
Нет, нельзя.
@liftoman_777
@liftoman_777 Год назад
@@VladimirMedintsev Спасибо!
@user-rx4rp5yb5j
@user-rx4rp5yb5j 3 года назад
А что происходит на Али с STM32 - цены увеличились в 6 раз и даже по таким ценам ничего не купить ибо продавцы отвечают что на складе ничего нет и скоро будут но очень дорого? Причем Atmel можно купить по старым ценам.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Не только на али, везде цена увеличилась. Еще с осени кризис и дефицит чипов, мы еще в ноябре на год вперёд закупились.
@sozdatelEd
@sozdatelEd 3 года назад
не скажите. третий раз заказываю ATMega32 и продавцы отписываются что цена поднялась и надо доплатить. или отписываются что нет на складах. Так что стабильно со всеми МК какая-то напряжёнка
@user-rx4rp5yb5j
@user-rx4rp5yb5j 3 года назад
@@sozdatelEd - а ну тогда успокоили - а то я думал что на stm32 только крест поставили. Я уже не заказываю - понял что бесполезно, уже неделю переписываюсь с продавцами и понял что и это бесполезно - ибо они работают со складов и они сами не знают что со складов кто-то все выгреб.
@pomanpomahovich9265
@pomanpomahovich9265 3 года назад
а юридический интерфейс есть ??)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
И юридический тоже есть.
@pomanpomahovich9265
@pomanpomahovich9265 3 года назад
@@VladimirMedintsev это когда программист заставил работать STM32 без отдыха нарушая рабочей кодекс кибернетики
@cb_q
@cb_q 3 года назад
@@pomanpomahovich9265 xeon'ам не говорите, а то они в профсоюз вступят)
@sergelsv5470
@sergelsv5470 3 года назад
А с Black Magic Probe не баловались? github.com/blacksphere/blackmagic/wiki
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Мне он не нравится. Совсем.
@zel4053
@zel4053 3 года назад
Блин, думал ошибся каналом, ан нет всего лишь имидж новый.
@sledleo
@sledleo 3 года назад
Понятно, что ничего непонятно
@redtex
@redtex 3 года назад
Нельзя без бороды.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Это не надолго.
@xow998
@xow998 3 года назад
Как главный двоечник задаю вопрос, а где собственно списать? Это опять рыться в документации, ворошить чужой код, набивать себе шишки..., это же не наш метод! :)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Я не совсем понял что именно вы хотели списать...
@xow998
@xow998 3 года назад
@@VladimirMedintsev, отладчик с программатором в готовом виде...что бы в кейл вставил проект, нажал маке и готово, ну или не в кейл..., это я так пытаюсь шутить...
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Так вон же он показан в составе CMSIS. Компилируйте и используйте. Исходные коды до последней строчки.
@xow998
@xow998 3 года назад
@@VladimirMedintsev , ну все равно же не соответствует, моим запросам, автор то не экстрасенс:) Ну а если серьезно, то вас всегда смотреть интересно!
Далее
это самое вкусное блюдо
00:12
Просмотров 1,9 млн
Самоприкорм с сестрой 😂
00:19
Просмотров 183 тыс.
STM32 DMA ч.1
26:54
Просмотров 1,4 тыс.
STM32. Библия программиста
32:32
Просмотров 58 тыс.
РЭДФЛАГИ СБОРЩИКОВ ПК часть 1
1:00
Gizli Apple Watch Özelliği😱
0:14
Просмотров 3,9 млн