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

  Рет қаралды 13,919

Vladimir Medintsev

Vladimir Medintsev

Күн бұрын

Пікірлер: 95
@engineer39notebook
@engineer39notebook 3 жыл бұрын
Спасибо большое за видео! Растите бороду и не болейте!)
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Спасибо большое.
@sergeysemenkov6474
@sergeysemenkov6474 8 ай бұрын
Спасибо, долго искал эту информацию, а Вы все подробно объяснили.
@ArthurIslamRU
@ArthurIslamRU 3 жыл бұрын
Спасибо большое, Уважаемый Владимир. С удовольствием смотрим, как и раньше не успеваем за Вами.
@vernnms78
@vernnms78 3 жыл бұрын
Спасибо за информацию! Всегда полезно и любопытно!
@ЮрийЛипатов-э1к
@ЮрийЛипатов-э1к 3 жыл бұрын
Спасибо за ваш труд!
@MikhailGoncharov-tl4cr
@MikhailGoncharov-tl4cr 8 ай бұрын
золотой вы человек важную проблему разобрали
@ИванСидоров-к9м
@ИванСидоров-к9м 3 жыл бұрын
Пока что "в поле" использую ZFlasher для ST. Но за хорошую подсказку - спасибо! Не всегда есть возможность копаться, искать. А так - видео посмотрел, в памяти отложилось.
@Maxnicknameable
@Maxnicknameable 3 жыл бұрын
Делаю сейчас свой автономный программатор через UART по идеям из ваших видео. Та часть программы которая заливает прошивку достаточно быстро получилась. А вот написание кода для работа с экраном, клавиатурой, аккумулятором, freertoos, fatfs, кольцевым буфером отнимает огромное количество времени. Собственно вопроса нет, просто спасибо!)
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Очень хорошо, что получается. Я искренне рад.
@vitae-dw9ys
@vitae-dw9ys 3 жыл бұрын
Пока тягаю кубики FLProg и вижу в этом тупик. Потихоньку перехожу на Си и дается это тяжело. Спасибо большое за такое глубокое видео.
@davidkain9046
@davidkain9046 3 жыл бұрын
Тут с самой стмкой разобраться бы , а вы про собственный отладчик)) спасибо за видео
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Что там с этим микроконтроллером разбираться? Берите reference manual и читайте от корки до корки. Этого будет вполне достаточно для полного освоения STM32.
@igorgolovnya7854
@igorgolovnya7854 3 жыл бұрын
@@VladimirMedintsev LOL ))
@shibkovumnij1977rb
@shibkovumnij1977rb 5 ай бұрын
@@VladimirMedintsev да читать бы научиться
@pomanpomahovich9265
@pomanpomahovich9265 3 жыл бұрын
Глаза покрасневшие очередная бессонная ночь программиста)))
@vitgo
@vitgo 3 жыл бұрын
ОО ! Интересная тема !
@Shiover
@Shiover 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 и он внутренний.
@Mr.Leeroy
@Mr.Leeroy Жыл бұрын
подружить бы ESPLink и SWD, да подобные задумки ох как небыстро осуществляю.. шустро разбираться в чужом коде до сих пор не выходит.
@МихаилГреков-н4э
@МихаилГреков-н4э 3 жыл бұрын
Здравствуйте, не могу некоторую информацию в интернете найти. Может, вы по опыту знаете. Может ли STM32F4 общаться с eMMC 5.1 по 1bit шине? И если да, то где про это почитать?
@johnkoffee
@johnkoffee 3 жыл бұрын
Стоп кадр на 2 секунде: "Хабар принёс?" Владимир, не в обиду, а отсылки ради)
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Я лично не понял о чем это вы вообще.
@johnkoffee
@johnkoffee 3 жыл бұрын
@@VladimirMedintsev в игре сталкер есть персонаж Сидорович. Вы на него похожи по сидячей позе и бороде. А игрока он приветствовал фразой "хабар принёс?"
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Понятно, я просто не играю, не знаю что там творится.
@WebMaxat
@WebMaxat 3 жыл бұрын
Здравствуйте. С ядром Cortex-R не сталкивались? На нем есть фишки типа есс памяти и резервирования процессора. Ну и естественно расширенный набор команд. Но стм, как я понял, на нем не производят контроллеры, в основном TI или renesas.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
И в чем вопрос? Вы проводите опрос общественного мнения?
@WebMaxat
@WebMaxat 3 жыл бұрын
@@VladimirMedintsev Я подумал что раз вы интересуетесь углубленным изучением арм, то может и сталкивались с данной архитектурой. А может и из ваших зрителей кто то работал, оставит свое впечатление.
@РусланФаткуллов-р6т
@РусланФаткуллов-р6т 3 жыл бұрын
СТ Микроэлектроникс выпускает только Кортекс-М и Кортекс-А+Кортекс-М чипы.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@РусланФаткуллов-р6т Ну мир на STM не заканчивается. Я активно NXP и прочих использую.
@РусланФаткуллов-р6т
@РусланФаткуллов-р6т 3 жыл бұрын
@@VladimirMedintsev я знаю, т. к. у меня основной мк от Инфинеон. Ещё Миландр на кафедре. СТМ просто очень популярны в гражданском и бытовом сегментах.
@DmitryTan
@DmitryTan 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 и так далее
@stm32msk48
@stm32msk48 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 Жаль. Может Вы знаете другой способ создания файлов алгоритма для разных контроллеров?
@liftoman_777
@liftoman_777 Жыл бұрын
А может кто-нибудь подсказать: можно ли ST-LINKом зашить МК lgt8f328? (там написано что протокол SWD)
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
Нет, нельзя.
@liftoman_777
@liftoman_777 Жыл бұрын
@@VladimirMedintsev Спасибо!
@volodink
@volodink 3 жыл бұрын
Доброго дня. Можно как то прояснить, как добавить беспроводную отладку для МК.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Я не понял вопроса.
@volodink
@volodink 3 жыл бұрын
@@VladimirMedintsev Так, ладно. Вот есть stlink, он по usb подключается. А иногда нет usb, изделие стоит на испытаниях например, но хочется его перешивать, отлаживать и запускать например совместно с Tracealyzer. Есть ли какие вменяемые варианты отладчиков по wifi например или подобное?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Собственно опять не понял, а кто мешает пробросить USB через Ethernet? Ну как бы и пользуйтесь.
@rabbitchocolate2599
@rabbitchocolate2599 3 жыл бұрын
А есть какие нибудь новости когда цены вернутся на нормальный уровень? Осенью заказывали партию 103 1к около 1$ за шт, сейчас просят ~4$.У nxp и infineon тоже дорого, можно ещё немного добавить и взять полноценный x86 компьютер )
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Цены на прежний уровень больше не вернутся никогда. Они, конечно, снизятся, но возврата к прошлым ценам не будет никогда.
@chipsoft1
@chipsoft1 3 жыл бұрын
Это еще шаровые цены, нужно брать пока по 4. 105-ые уже за 25 - 30 долл перешагнули
@DRDRPETR
@DRDRPETR 3 жыл бұрын
Уважаемый Владимир, большое спасибо вам за ваши видео! Хотел спросить вас о некоторых вещах. Во-первых, есть ли жизнь за пределами STMicroelectronics? Если да, то возможно ли её освещение со стороны вашего опыта? Во-вторых, как вы смотрите на встраивание виртуальных машин интерпретаторов в микроконтроллеры? Был ли опыт с Forth? И, с вашего позволения, третье - Возможен ли с вашей точки зрения альтернативный CubeMX подход к графической и наглядной конфигурации периферии контроллеров? А именно, подход, который будет демонстрировать значительную часть информации из даташита в процессе настройки и, соответственно, поможет лучше представить работу периферии, а не будет скрывать её от разработчика. Большое спасибо.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Да, жизнь есть. И есть куча микроконтроллеров и их производителей. Освещать на канале их пока не планирую. Причина проста, ролик с микроконтроллерами (к примеру) NXP в виду не сильно большой популярности последних у радиолюбителей смотреть будет сильно меньше народа, а значит и доход мой от рекламы уменьшится. И зачем мне это? Делать надо попсу типа ардуино ее смотрят и платят.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
На встраиваемые виртуальные машины я смотрю крайне плохо. Очень плохо.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Альтернативный CubeMX графический конфигуратор смысла не имеет. Профессионал многое знает и может свободно ориентироваться в документации и периферии. А новички и любители производителей МК не волнуют в принципе. Их ценность ничтожна. Это я к тому, что ничего и ничем не скрыто. Инструмент достаточен.
@trollquantum
@trollquantum 3 жыл бұрын
Чудово. Вподобайка.
@pomanpomahovich9265
@pomanpomahovich9265 3 жыл бұрын
а юридический интерфейс есть ??)
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
И юридический тоже есть.
@pomanpomahovich9265
@pomanpomahovich9265 3 жыл бұрын
@@VladimirMedintsev это когда программист заставил работать STM32 без отдыха нарушая рабочей кодекс кибернетики
@cb_q
@cb_q 3 жыл бұрын
@@pomanpomahovich9265 xeon'ам не говорите, а то они в профсоюз вступят)
@НиколайПр-з3в
@НиколайПр-з3в 3 жыл бұрын
А что происходит на Али с STM32 - цены увеличились в 6 раз и даже по таким ценам ничего не купить ибо продавцы отвечают что на складе ничего нет и скоро будут но очень дорого? Причем Atmel можно купить по старым ценам.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Не только на али, везде цена увеличилась. Еще с осени кризис и дефицит чипов, мы еще в ноябре на год вперёд закупились.
@sozdatelEd
@sozdatelEd 3 жыл бұрын
не скажите. третий раз заказываю ATMega32 и продавцы отписываются что цена поднялась и надо доплатить. или отписываются что нет на складах. Так что стабильно со всеми МК какая-то напряжёнка
@НиколайПр-з3в
@НиколайПр-з3в 3 жыл бұрын
@@sozdatelEd - а ну тогда успокоили - а то я думал что на stm32 только крест поставили. Я уже не заказываю - понял что бесполезно, уже неделю переписываюсь с продавцами и понял что и это бесполезно - ибо они работают со складов и они сами не знают что со складов кто-то все выгреб.
@sergelsv5470
@sergelsv5470 3 жыл бұрын
А с Black Magic Probe не баловались? github.com/blacksphere/blackmagic/wiki
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Мне он не нравится. Совсем.
@secondeditionregeneration6798
@secondeditionregeneration6798 3 жыл бұрын
11:00 32f103 программатор... только подумал(мысли прочитал)... Есть ф0- ф4 дискавери...нет Маленького программатора на гГолубой_ПЕЛЮЛЕ (аля своими руками.. спалил/статика не жалко)...
@c2n2402
@c2n2402 3 жыл бұрын
Отладка это очень хорошо :) Но у меня так и не получилось запустить следующую связку, для отладки на железе: QTCreator (+bare metal) + STLink/Discovery + STM32F103. Может есть у кого опыт запуска на винде? Находил инструкцию для линуксов, но она сводится к apt get и "как нарисовать сову"... Кейл не понравился, atolic - что-то глючил... Сейчас думаю вернуться к STMкам, да и миландровский чип есть... Появилась какая то STM IDE, но зверинец сред не хочу разводить. ЗЫ: я новорег на вашем канале. Мне нравится :) Может есть смысл сделать/обновить руководство для новичков старт в STM, в том числе для ардуинщиков - переростков :)
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Хотите вы или нет, но IDE типа Cube, Keil, Segger рано или поздно вам ставить придется. Как понадобится полноценная отладка так и придется. Что касается канала, то это просто мой блог. Несмотря на то, что я периодически что-то выпускаю для начинающих, это не является основной темой. Больше это все-таки материалы для более опытной аудитории.
@c2n2402
@c2n2402 3 жыл бұрын
@@VladimirMedintsev, да это к сожалению неизбежно. Прийдется к Атмел студии, Vivado и QT что то добавить... Можно вообще без отладчика разрабатывать, что я и не так давно делал с 1887ВЕ4У, являющимся функциональным аналогом ATmega8535. И 1887ВЕ7Т = atm128 со своими приколами... Но уж больно велик соблазн пилить код в одной среде: и прошивку железки и софт для компа управляющий этой железкой. А с учетом что миландр уверяет, что их микрухи лицензированы ARM.... На Кейл не хочу переходить, т. к. если труды моей диссертации пойдут, то скорее всего я не подпаду под их лицензирование. С fusion 360 вроде как попроще будет. QT - тоже под вопросом, но т. к. они имеют версию "Comunity" то договориться с ними будет проще.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Договориться с QT... Это хорошая шутка. В Миландр даже не суйтесь. Это страшная яма с крокодилами. Код можно делать и отлаживать в чем угодно, а потом в финале откомпилируете в бесплатной CubeIDE и лицензионно вы чисты.
@cb_q
@cb_q 3 жыл бұрын
воу-воу, так и до ботнета недалеко: когда один мк перепрошивает (заражает) следующий в цепочке (сарказм). а тема довольно крута. как уже ранее отмечалось, прошивка одного мк из другого полезна для массового обновления или отката прошивки в полях, а отладка дает огромный потенциал для автоматизированных тестов в железе. стенд состоящий из двух мк - один тестируемый, второй - что производит тест. для ночных сборок самое то (каждый чих тестировать никакого flash'а не хватит, а раз в сутки или по запросу - отличный способ зафиксировать работоспособность правок или новой функциональности). при чем тестировать можно как работу прошивки в целом, так и пошагово (используя отладчик), т.е. проверяя состояние мк на момент останова.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Вот для "полей" эту тему и прорабатывал.
@sledleo
@sledleo 3 жыл бұрын
Понятно, что ничего непонятно
@zel4053
@zel4053 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 , ну все равно же не соответствует, моим запросам, автор то не экстрасенс:) Ну а если серьезно, то вас всегда смотреть интересно!
@michzouthins1657
@michzouthins1657 3 жыл бұрын
Спасибо большое за ваш труд!
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН