STM32CubeIDE. Вывод printf без наличия SWO

  Рет қаралды 9,513

NR.electronics

NR.electronics

3 жыл бұрын

В видео на практическом примере рассказывается и демонстрируется как можно без линии SWO выводить текстовую/цифровую информацию для мониторинга/отладки необходимых состояний прошивки на примере микроконтроллера STM32G071.
Source:
github.com/nr-electronics/STM...
Вы можете помочь каналу Яндекс-деньги:
money.yandex.ru/to/4100115727...

Пікірлер: 104
@user-hd3jz7rp7y
@user-hd3jz7rp7y 3 жыл бұрын
Спасибо , для bluepill stm32f103 все работает
@NRelectronics
@NRelectronics 3 жыл бұрын
Отлично, я рад.
@Grigrost
@Grigrost 3 жыл бұрын
Спасибо за очень познавательное видео!
@NRelectronics
@NRelectronics 3 жыл бұрын
Всегда пожалуйста)
@ranikeev
@ranikeev Жыл бұрын
Рекомендую еще посмотреть на Segger RTT.
@NRelectronics
@NRelectronics Жыл бұрын
Спасибо.
@iBarmalei
@iBarmalei 3 жыл бұрын
жирный лайк и почетная грамота за труд. верной дорогой идете, товарищ!!
@NRelectronics
@NRelectronics 3 жыл бұрын
Благодарю! Смотрите на пользу.
@manul88
@manul88 3 жыл бұрын
Молодец! Спасибо!
@NRelectronics
@NRelectronics 3 жыл бұрын
Пожалуйста)
@serhiiplys4588
@serhiiplys4588 2 жыл бұрын
Только эта особенность будет работать в Debug Mode. Если компилить для Релиза - то все надо убирать и возвращать к настройкам по умолчанию. а для дебаггинга - крайне полезная вещь
@NRelectronics
@NRelectronics 2 жыл бұрын
Конечно в релизе убирать. Слишком много накладных расходов на эту функцию в таком виде.
@olegp.3012
@olegp.3012 2 ай бұрын
так дело ж не только в дополнительніх расходах русурсов. Вне дебаг режиме програма дойдет до первого printf, встретит инструкцию брейкпоинта и остановится до следующей перезагрузки. Или нет?
@user-ee9bo8ws2x
@user-ee9bo8ws2x 2 жыл бұрын
После просмотра Вашего обзора - купил эту плату. Всё сделал по видео - всё получилось. Спасибо большое за труд - он реально помогает. А ввод возможен через эту же консоль, в которую вывод происходит? Или каким то другим способом
@NRelectronics
@NRelectronics 2 жыл бұрын
Ввод не возможен. SWO работает только на выход. Тогда нужно вам использовать UART для двухстороннего обмена данных.
@user-tc5jo9mb3h
@user-tc5jo9mb3h 2 жыл бұрын
Спасибо за видео. Небольшая подсказка по набору команд. Если в редакторе набрать например prin и затем нажать Ctrl+Пробел, то произойдет автодополнение с подсказкой по аргументам. Что ускорит дело )
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо. Интересно, попробую, не знал)
@MrIgor269
@MrIgor269 Жыл бұрын
Спасибо. У меня проц STM32F030. Я использовал STLINK-V2 (китайский, без переделок). Сделал почти так же как в ролике. Только в настройке Debuggers -> Reset Mode я установил "None" , иначе не хотело работать и проц зависал. Приходилось его стирать отдельно прогой STM32CubeProgrammer, причем нужно было почти одновременно сбрасывать проц (замыкать резет) и нажимать на программаторе кнопку "Connect". Иначе программатор не определяет проц! Вы не в курсе почимо так происходит? Эта фунция очень удобна!!! (Вывод в консоль). Большое спасибо Вам!
@NRelectronics
@NRelectronics Жыл бұрын
Пожалуйста. Вы подключали аппаратно линию песни? Тут у вас не совпадение настроек аппаратный/программный сброс МК или линию песни не подключили.
@vadimvarlamov7907
@vadimvarlamov7907 3 жыл бұрын
Прокатят ли эти настройки для Keil, или это работает только для CubeIDE?
@NRelectronics
@NRelectronics 3 жыл бұрын
По идее да, но видео с демкой никак не запилю...
@OpenFrimeTVcom
@OpenFrimeTVcom 6 ай бұрын
а от куда брали инфу что нужно делать именно так? я сейчас читаю книгу (освоением стм32) и там тоже про это написано. называется полухостинг. но там про еклипс рассказано.
@NRelectronics
@NRelectronics 6 ай бұрын
Не из этой книги. Из другого источника.
@OpenFrimeTVcom
@OpenFrimeTVcom 6 ай бұрын
@@NRelectronics а что за источник? или секрет фирмы?)
@NRelectronics
@NRelectronics 6 ай бұрын
Попробую вспомнить и найти, это был сайт. Я потом вам в телеге скину...
@OpenFrimeTVcom
@OpenFrimeTVcom 6 ай бұрын
@@NRelectronics спасибо)
@NRelectronics
@NRelectronics 5 ай бұрын
Не найду сайт. Можете по видео проверить, всё чётко работает)
@Sanchogus
@Sanchogus 3 жыл бұрын
Где-то с 3:30 начинается сама тема, если кто-то рвется в бой))
@NRelectronics
@NRelectronics 3 жыл бұрын
Без вступления никуда, а то порой начинаются вопросы мол зачем/почему/откуда - как будто это действительно сильно важно в видео...
@Sanchogus
@Sanchogus 3 жыл бұрын
@@NRelectronics ну надо было что-то написать в комент же :) Инфа, безусловно, полезная. Так даже лучше, чем отдельный пин SWO в какой-то степени. Можно еще на подобные вопросы "зачем/почему/откуда/что такое SWO" делать вставки с отсылками к предыдущим видео (если они есть), заодно и их глянут, может быть.
@andreiefimov9666
@andreiefimov9666 3 жыл бұрын
@@NRelectronics если у зрителей возникают подобные вопросы, то это точно не целевая аудитория
@iy373
@iy373 3 жыл бұрын
Ну ты балин ващее... Ждем продолжения: отладка через 3.3v без программатора, повторная заливка кода на однократно программируемые МК. )
@NRelectronics
@NRelectronics 3 жыл бұрын
Старался)))
@ivanrusev2270
@ivanrusev2270 2 жыл бұрын
Ау меня вопрос .Вернее два вопроса.Я подключаю #includeа у вас лапки как правильно.?и второй вопрос Printf USARTкак работает он?
@NRelectronics
@NRelectronics 2 жыл бұрын
Кавычки и фигурные скобки и так и так правильно. Может почитаете основы Си? Printf высылает свой(наш) аргумент в SWO линию.
@ivanrusev2270
@ivanrusev2270 2 жыл бұрын
@@NRelectronics А вUSART?
@NRelectronics
@NRelectronics 2 жыл бұрын
Заменяется библиотека syscall на rdimon и в ней, предкоипилированной, все случается.
@alexshu1609
@alexshu1609 2 жыл бұрын
Спасибо за ролик . Получилось stm32f401ccu BlekPill Где взят данный рецепт . Хотелось бы больше подробностей по данной тематике, так сказать используемая литература данного рецепта.
@NRelectronics
@NRelectronics 2 жыл бұрын
Используемая литература, это Programming manual и Reference manual.
@alexshu1609
@alexshu1609 2 жыл бұрын
@@NRelectronics Спасибо, но это как то расплывчато... Если можно ссылку(-ки) или номер STшного мануала типа "UM1850" может словосочетание для гугла ...
@NRelectronics
@NRelectronics 2 жыл бұрын
В комьюнити нашёл, потом сам развил. Как найду в доках дам знать.
@Prostopravda
@Prostopravda 3 ай бұрын
Отладка работает, но при включенной трассировке Keil выдает "Trace: No Synchronization". Использую китайский ST-Link V2, плата на базе STM32F407VET6. Тот же результат на STM32F103C8T6. Танцы с бубном не помогают, гугл тоже. Может ли трассировка вообще работать с китайским ST-Link V2?
@NRelectronics
@NRelectronics 3 ай бұрын
Читал, что трассировка в кейле работает под их полноценным U link Pro или как он называется. Под ulink2 она не работает. Большие сомнения что под стлинк она может работать, там соответствующих выводов на линиях программатора нет.
@Prostopravda
@Prostopravda 3 ай бұрын
@@NRelectronics Спасибо за ответ, народные умельцы пишут, что они делают трассировку в Keil через STLink по SWD, собственно потому мне и стало интересно, возможно ли такое. Но они не уточняют, каким именно STLink пользуются.
@NRelectronics
@NRelectronics 3 ай бұрын
Возможно, надо проверить.
@user-ef2rr7kz4m
@user-ef2rr7kz4m 3 жыл бұрын
Доброе время суток, спасибо за видео. Только интересует вопрос в CUBE IDE справа внизу есть возможность создать новую консоль или открыть консоль и там уже смотреть результат вывода prinf или это было в Atolic studio причем ручками прописывать ни чего не надо. Или я что то путаю и придумываю?! Там консоль открывалась по принципу работы "Ардуино" ну и порт типа "local"
@NRelectronics
@NRelectronics 3 жыл бұрын
Доброго времени суток. Идея куб иде таже, с атолика то всё и пошло.
@balmerdx1
@balmerdx1 3 жыл бұрын
Директорию Debug не нужно добавлять в git .
@NRelectronics
@NRelectronics 3 жыл бұрын
Ок.
@ileyka
@ileyka 3 жыл бұрын
Что за библиотека rdimon?
@NRelectronics
@NRelectronics 3 жыл бұрын
Я не гуглил.
@sssserya1
@sssserya1 3 жыл бұрын
в каких версиях платы есть SWO ?
@NRelectronics
@NRelectronics 3 жыл бұрын
причем тут версия платы? в контроллере нет SWO.
@sssserya1
@sssserya1 3 жыл бұрын
@@NRelectronics у всех версиях платы один и тот же контроллер ?
@NRelectronics
@NRelectronics 3 жыл бұрын
на всех нуклео стоит мк в одном и том же типоразмере но разных модельных сериях...
@sssserya1
@sssserya1 3 жыл бұрын
@@NRelectronics типоразмер свидетесвует о одном и том же контролере ?
@NRelectronics
@NRelectronics 3 жыл бұрын
нет
@maksympavlenko5305
@maksympavlenko5305 3 жыл бұрын
скажите пожалуйста это актуально для STM32F103C8t6? я не хочу ничего паять в ST linke :)
@NRelectronics
@NRelectronics 3 жыл бұрын
SWO актуально для stm32f103c8t6, как и для многих других МК. Но у вас должна быть поддержка его в программаторе.
@maksympavlenko5305
@maksympavlenko5305 3 жыл бұрын
@@NRelectronics у меня китайская ST-link V2. Я так понимаю там нужно подпаять проводок. Без этой операции можно обойтись?:) типа без наличия SWO, или я туплю сейчас где-то?)
@NRelectronics
@NRelectronics 3 жыл бұрын
для программирования и отладки STM32 любых микроконтроллеров линия SWO особо и не нужна.
@maksympavlenko5305
@maksympavlenko5305 3 жыл бұрын
@@NRelectronics спасибо за ответ. А есть ли cube mx ide или в attolic truestudio возможность вывода значений переменных или графиков по последовательному порту, или чтобы printf видно было где то? То есть что то типа как монитор порта в Ардуино ide ). Спасибо
@NRelectronics
@NRelectronics 3 жыл бұрын
Да, это есть. В каком-то ролике это показывал. Как буду дома, найду этот ролик на моем канале и сделаю вам ссылку.
@comradov3308
@comradov3308 Жыл бұрын
Написал комментарий, его удалили, переписал, снова удалили, странно...
@NRelectronics
@NRelectronics Жыл бұрын
Что написали?? Если была какая-то ссылка не на ютуб, то он удаляет без моего ведома... А так вижу ваше сообщение.
@comradov3308
@comradov3308 Жыл бұрын
​@@NRelectronics Хотел сказать вам спасибо за ваше видео. Да ссылка была, попробую написать еще раз :)) Попробовал на STM32F723 - работает. Я проверял с оригинальным внешним stlink/v2 ISOL. Не знаю откуда вы брали информацию, но есть замечательная статья тут codeinsideoutcomblogstm32semihosting Всякие и заменить на соответствующие символы. В статье также говорится что можно не только выводить строки, но и получать ввод с консоли, а еще писать в файл который будет сохраняться сразу на хостовой машине. Проверил ввод, вывод и запись в файл как описано в статье, у меня все получилось. Еще раз спасибо за видео. Всем удачи.
@NRelectronics
@NRelectronics Жыл бұрын
Вам спасибо за информацию. Я так полагаю что работает только на вывод, но раз вы говорите что у вас работает, то статью проверю. Спасибо за инфу! 👍
@NRelectronics
@NRelectronics Жыл бұрын
Посмотрел. В режиме отладки через opencd можно вводить данные. Интересно как это можно полезно реализовать для мк. Имитация прихода данных например, по определённому протоколу. Надо подумать) Как вы это у себя применяли?
@comradov3308
@comradov3308 Жыл бұрын
​@@NRelectronics Мой проект пока в стадии проектирования. На данный момент я изучаю какие есть возможности для отладочного ввода-вывода. Ввод мне не нужен, но если вдруг потребуется важно знать как его реализовать. Решение какой вариант использовать приму позже. Как это применить для МК? Я бы исходил от задачи. Например у меня был проект в котором помимо прошивки с основным функционалом была специальная прошивка для тестирования оборудования и в ней все управление осуществлялось через UART. Или например как эмуляция команд/данных от устройства которого нет на этапе разработки. Или альтернатива точкам остановки, бред конечно, но почему нет? :) Зачем выдумывать, жизнь сама подскажет :)
@ilhitindustries7499
@ilhitindustries7499 3 жыл бұрын
Здравствуйте! Я давненько просил сделать один урок по светодиоду но пока его нет хотел бы перефразировать. Не могли бы вы в ваших уроках объяснить как имея несколько библиотек из файлов.с и файлов.h в одном проекте управлять ими посредством кнопки и RGB светодиода? Например код 123 включает одну библиотеку а другой код соответственно другую библиотеку. Спасибо.
@NRelectronics
@NRelectronics 3 жыл бұрын
Здравствуйте. А если препроцессор подтянет сразу все библиотеки, так плохо? Вы можете назвать все разными переменными и ссылаться на то что и когда вам надо.
@ilhitindustries7499
@ilhitindustries7499 3 жыл бұрын
@@NRelectronics Наверное так будет правильнее как вы предложили. Я пока не могу понять как работает данный алгоритм
@NRelectronics
@NRelectronics 3 жыл бұрын
Почитайте о препроцессоре Си. Есть видео по книгам Си на моем канале.
@Shinsei75
@Shinsei75 3 жыл бұрын
Это основы С. Стоит, наверное, в начале с языком разобраться, а потом уже на МК переходить.
@NRelectronics
@NRelectronics 3 жыл бұрын
Желательно конечно.
@Embedded_Developer
@Embedded_Developer 3 жыл бұрын
т.е. я правильно понимаю, что в порт вы ничего не посылаете и через любой монитор я этого не увижу, а работает только через саму IDE? не, ну прикольно. :-)
@NRelectronics
@NRelectronics 3 жыл бұрын
Да, только под отладкой увидите, без использования дополнительных линий. Нужен только swdio и swclk.
@serjkp
@serjkp 3 жыл бұрын
@@NRelectronics а в релизной версии прошивки зависать не будет? И что нужно будет поменять в настройке релизной компиляции дабы не выводилась отладка?
@NRelectronics
@NRelectronics 3 жыл бұрын
по хорошему вернуть все настройки обратно.
@472bush
@472bush Жыл бұрын
Ну почему же производители stm32 так облажались с отладкой? как будто сами не пишут на своих мк, почему все так сложно? ведь это самый важный и главный инструмент. Я специально купил оригинальный st_LInk и теперь третий день не могу открыть монитор порта потому что информации по нему нет, и зачем показывать в своих примерах отладочные платы еще и с встроенным программатором ведь они огромные и для проектов новичков не влезут нин в один корпус, а постоянно отламывать программаторы что бы их потом некуда было девать и каждый раз за них переплачивать или брать и показывать на примере распространенных и дешевых BLUEPILL нельзя?
@NRelectronics
@NRelectronics Жыл бұрын
Почему облажались? В чем? В каждом семействе свой набор выводов. Монитор вы открыть не можете, это юарт? А он у вас подключен к мк? Я не вижу в этом проблем. Если хотите маленький программатор то используйте sT-Link v2 mini.
@472bush
@472bush Жыл бұрын
@@NRelectronics я хотел сказать, что нет информации о простых вещах которые знают программисты выше начального уровня, а именно, что надо было сказать что открываете даташит на контроллер ищите пин SWO подключаете к соответствующему пину программатора и у вас счастье. Так нет, вы зачем то в юарт лезете, а если он занят аппаратно. и через него надо читать данные? почему бы не объяснить что такое serial wire почему его где используют а почему нет
@NRelectronics
@NRelectronics Жыл бұрын
На многие вещи, о которых вы сказали, есть Application note. И тут подразумевается, чио как вы пишите программист выше начального, может открыть и самостоятельно прочитать документацию. Так должны работать любые программисты.
@472bush
@472bush Жыл бұрын
@@NRelectronics тогда для кого вы вкладываете, учебные ролики? Я не хочу вас задеть, и уважаю ваш труд, вы помогаете развивать прогресс, но вопросов становится все больше. Спасибо.
@NRelectronics
@NRelectronics Жыл бұрын
Когда вопрос становится больше, значит вы на правильном пути.
When You Get Ran Over By A Car...
00:15
Jojo Sim
Рет қаралды 11 МЛН
Sigma Girl Past #funny #sigma #viral
00:20
CRAZY GREAPA
Рет қаралды 30 МЛН
STM32. CMSIS #0. Основные команды
11:22
NR.electronics
Рет қаралды 20 М.
STM32 Функция Print для отладки. CMSIS
29:44
STM32. Внешние прерывания EXTI
41:07
it - самородок
Рет қаралды 606
STM32: PWM шаг за шагом на STM32CubeIDE
10:51
G1Tech
Рет қаралды 27 М.
When You Get Ran Over By A Car...
00:15
Jojo Sim
Рет қаралды 11 МЛН