Это видео недоступно.
Сожалеем об этом.
STM32CubeIDE. Вывод printf без наличия SWO
HTML-код
- Опубликовано: 15 авг 2020
- В видео на практическом примере рассказывается и демонстрируется как можно без линии SWO выводить текстовую/цифровую информацию для мониторинга/отладки необходимых состояний прошивки на примере микроконтроллера STM32G071.
Source:
github.com/nr-...
Вы можете помочь каналу Яндекс-деньги:
money.yandex.r...
Спасибо , для bluepill stm32f103 все работает
Отлично, я рад.
Спасибо за очень познавательное видео!
Всегда пожалуйста)
Только эта особенность будет работать в Debug Mode. Если компилить для Релиза - то все надо убирать и возвращать к настройкам по умолчанию. а для дебаггинга - крайне полезная вещь
Конечно в релизе убирать. Слишком много накладных расходов на эту функцию в таком виде.
так дело ж не только в дополнительніх расходах русурсов. Вне дебаг режиме програма дойдет до первого printf, встретит инструкцию брейкпоинта и остановится до следующей перезагрузки. Или нет?
Где-то с 3:30 начинается сама тема, если кто-то рвется в бой))
Без вступления никуда, а то порой начинаются вопросы мол зачем/почему/откуда - как будто это действительно сильно важно в видео...
@@NRelectronics ну надо было что-то написать в комент же :) Инфа, безусловно, полезная. Так даже лучше, чем отдельный пин SWO в какой-то степени.
Можно еще на подобные вопросы "зачем/почему/откуда/что такое SWO" делать вставки с отсылками к предыдущим видео (если они есть), заодно и их глянут, может быть.
@@NRelectronics если у зрителей возникают подобные вопросы, то это точно не целевая аудитория
Рекомендую еще посмотреть на Segger RTT.
Спасибо.
жирный лайк и почетная грамота за труд. верной дорогой идете, товарищ!!
Благодарю! Смотрите на пользу.
Спасибо за видео.
Небольшая подсказка по набору команд. Если в редакторе набрать например prin и затем нажать Ctrl+Пробел, то произойдет автодополнение с подсказкой по аргументам. Что ускорит дело )
Спасибо.
Интересно, попробую, не знал)
После просмотра Вашего обзора - купил эту плату. Всё сделал по видео - всё получилось. Спасибо большое за труд - он реально помогает. А ввод возможен через эту же консоль, в которую вывод происходит? Или каким то другим способом
Ввод не возможен. SWO работает только на выход. Тогда нужно вам использовать UART для двухстороннего обмена данных.
Ну ты балин ващее... Ждем продолжения: отладка через 3.3v без программатора, повторная заливка кода на однократно программируемые МК. )
Старался)))
Спасибо. У меня проц STM32F030. Я использовал STLINK-V2 (китайский, без переделок). Сделал почти так же как в ролике. Только в настройке Debuggers -> Reset Mode я установил "None" , иначе не хотело работать и проц зависал. Приходилось его стирать отдельно прогой STM32CubeProgrammer, причем нужно было почти одновременно сбрасывать проц (замыкать резет) и нажимать на программаторе кнопку "Connect". Иначе программатор не определяет проц! Вы не в курсе почимо так происходит?
Эта фунция очень удобна!!! (Вывод в консоль).
Большое спасибо Вам!
Пожалуйста.
Вы подключали аппаратно линию песни? Тут у вас не совпадение настроек аппаратный/программный сброс МК или линию песни не подключили.
а от куда брали инфу что нужно делать именно так? я сейчас читаю книгу (освоением стм32) и там тоже про это написано. называется полухостинг. но там про еклипс рассказано.
Не из этой книги. Из другого источника.
@@NRelectronics а что за источник? или секрет фирмы?)
Попробую вспомнить и найти, это был сайт. Я потом вам в телеге скину...
@@NRelectronics спасибо)
Не найду сайт. Можете по видео проверить, всё чётко работает)
Отладка работает, но при включенной трассировке Keil выдает "Trace: No Synchronization". Использую китайский ST-Link V2, плата на базе STM32F407VET6. Тот же результат на STM32F103C8T6. Танцы с бубном не помогают, гугл тоже. Может ли трассировка вообще работать с китайским ST-Link V2?
Читал, что трассировка в кейле работает под их полноценным U link Pro или как он называется. Под ulink2 она не работает. Большие сомнения что под стлинк она может работать, там соответствующих выводов на линиях программатора нет.
@@NRelectronics Спасибо за ответ, народные умельцы пишут, что они делают трассировку в Keil через STLink по SWD, собственно потому мне и стало интересно, возможно ли такое. Но они не уточняют, каким именно STLink пользуются.
Возможно, надо проверить.
Молодец! Спасибо!
Пожалуйста)
Как это сделать в Keil uVision?
Да по сути также. Будет время сделаю видео.
Ау меня вопрос .Вернее два вопроса.Я подключаю #includeа у вас лапки как правильно.?и второй вопрос Printf USARTкак работает он?
Кавычки и фигурные скобки и так и так правильно. Может почитаете основы Си? Printf высылает свой(наш) аргумент в SWO линию.
@@NRelectronics А вUSART?
Заменяется библиотека syscall на rdimon и в ней, предкоипилированной, все случается.
Спасибо за ролик . Получилось stm32f401ccu BlekPill Где взят данный рецепт . Хотелось бы больше подробностей по данной тематике, так сказать используемая литература данного рецепта.
Используемая литература, это Programming manual и Reference manual.
@@NRelectronics Спасибо, но это как то расплывчато... Если можно ссылку(-ки) или номер STшного мануала типа "UM1850" может словосочетание для гугла ...
В комьюнити нашёл, потом сам развил. Как найду в доках дам знать.
Прокатят ли эти настройки для Keil, или это работает только для CubeIDE?
По идее да, но видео с демкой никак не запилю...
Есть для Keil uVision?
в каких версиях платы есть SWO ?
причем тут версия платы? в контроллере нет SWO.
@@NRelectronics у всех версиях платы один и тот же контроллер ?
на всех нуклео стоит мк в одном и том же типоразмере но разных модельных сериях...
@@NRelectronics типоразмер свидетесвует о одном и том же контролере ?
нет
Доброе время суток, спасибо за видео. Только интересует вопрос в CUBE IDE справа внизу есть возможность создать новую консоль или открыть консоль и там уже смотреть результат вывода prinf или это было в Atolic studio причем ручками прописывать ни чего не надо. Или я что то путаю и придумываю?! Там консоль открывалась по принципу работы "Ардуино" ну и порт типа "local"
Доброго времени суток. Идея куб иде таже, с атолика то всё и пошло.
Что за библиотека rdimon?
Я не гуглил.
скажите пожалуйста это актуально для STM32F103C8t6? я не хочу ничего паять в ST linke :)
SWO актуально для stm32f103c8t6, как и для многих других МК. Но у вас должна быть поддержка его в программаторе.
@@NRelectronics у меня китайская ST-link V2. Я так понимаю там нужно подпаять проводок. Без этой операции можно обойтись?:) типа без наличия SWO, или я туплю сейчас где-то?)
для программирования и отладки STM32 любых микроконтроллеров линия SWO особо и не нужна.
@@NRelectronics спасибо за ответ. А есть ли cube mx ide или в attolic truestudio возможность вывода значений переменных или графиков по последовательному порту, или чтобы printf видно было где то? То есть что то типа как монитор порта в Ардуино ide ). Спасибо
Да, это есть. В каком-то ролике это показывал. Как буду дома, найду этот ролик на моем канале и сделаю вам ссылку.
Директорию Debug не нужно добавлять в git .
Ок.
Ну почему же производители stm32 так облажались с отладкой? как будто сами не пишут на своих мк, почему все так сложно? ведь это самый важный и главный инструмент.
Я специально купил оригинальный st_LInk и теперь третий день не могу открыть монитор порта потому что информации по нему нет, и зачем показывать в своих примерах отладочные платы еще и с встроенным программатором ведь они огромные и для проектов новичков не влезут нин в один корпус, а постоянно отламывать программаторы что бы их потом некуда было девать и каждый раз за них переплачивать или брать и показывать на примере распространенных и дешевых BLUEPILL нельзя?
Почему облажались? В чем? В каждом семействе свой набор выводов.
Монитор вы открыть не можете, это юарт? А он у вас подключен к мк? Я не вижу в этом проблем.
Если хотите маленький программатор то используйте sT-Link v2 mini.
@@NRelectronics я хотел сказать, что нет информации о простых вещах которые знают программисты выше начального уровня, а именно, что надо было сказать что открываете даташит на контроллер ищите пин SWO подключаете к соответствующему пину программатора и у вас счастье.
Так нет, вы зачем то в юарт лезете, а если он занят аппаратно. и через него надо читать данные?
почему бы не объяснить что такое serial wire почему его где используют а почему нет
На многие вещи, о которых вы сказали, есть Application note. И тут подразумевается, чио как вы пишите программист выше начального, может открыть и самостоятельно прочитать документацию. Так должны работать любые программисты.
@@NRelectronics тогда для кого вы вкладываете, учебные ролики? Я не хочу вас задеть, и уважаю ваш труд, вы помогаете развивать прогресс, но вопросов становится все больше. Спасибо.
Когда вопрос становится больше, значит вы на правильном пути.
Здравствуйте! Я давненько просил сделать один урок по светодиоду но пока его нет хотел бы перефразировать. Не могли бы вы в ваших уроках объяснить как имея несколько библиотек из файлов.с и файлов.h в одном проекте управлять ими посредством кнопки и RGB светодиода?
Например код 123 включает одну библиотеку а другой код соответственно другую библиотеку. Спасибо.
Здравствуйте.
А если препроцессор подтянет сразу все библиотеки, так плохо?
Вы можете назвать все разными переменными и ссылаться на то что и когда вам надо.
@@NRelectronics Наверное так будет правильнее как вы предложили. Я пока не могу понять как работает данный алгоритм
Почитайте о препроцессоре Си. Есть видео по книгам Си на моем канале.
Это основы С. Стоит, наверное, в начале с языком разобраться, а потом уже на МК переходить.
Желательно конечно.
Написал комментарий, его удалили, переписал, снова удалили, странно...
Что написали?? Если была какая-то ссылка не на ютуб, то он удаляет без моего ведома... А так вижу ваше сообщение.
@@NRelectronics Хотел сказать вам спасибо за ваше видео.
Да ссылка была, попробую написать еще раз :))
Попробовал на STM32F723 - работает. Я проверял с оригинальным внешним stlink/v2 ISOL.
Не знаю откуда вы брали информацию, но есть замечательная статья тут codeinsideoutcomblogstm32semihosting
Всякие и заменить на соответствующие символы.
В статье также говорится что можно не только выводить строки, но и получать ввод с консоли, а еще писать в файл который будет сохраняться сразу на хостовой машине.
Проверил ввод, вывод и запись в файл как описано в статье, у меня все получилось.
Еще раз спасибо за видео.
Всем удачи.
Вам спасибо за информацию. Я так полагаю что работает только на вывод, но раз вы говорите что у вас работает, то статью проверю. Спасибо за инфу! 👍
Посмотрел. В режиме отладки через opencd можно вводить данные. Интересно как это можно полезно реализовать для мк. Имитация прихода данных например, по определённому протоколу. Надо подумать)
Как вы это у себя применяли?
@@NRelectronics Мой проект пока в стадии проектирования.
На данный момент я изучаю какие есть возможности для отладочного ввода-вывода.
Ввод мне не нужен, но если вдруг потребуется важно знать как его реализовать.
Решение какой вариант использовать приму позже.
Как это применить для МК?
Я бы исходил от задачи.
Например у меня был проект в котором помимо прошивки с основным функционалом была специальная прошивка для тестирования оборудования и в ней все управление осуществлялось через UART.
Или например как эмуляция команд/данных от устройства которого нет на этапе разработки.
Или альтернатива точкам остановки, бред конечно, но почему нет? :)
Зачем выдумывать, жизнь сама подскажет :)
т.е. я правильно понимаю, что в порт вы ничего не посылаете и через любой монитор я этого не увижу, а работает только через саму IDE? не, ну прикольно. :-)
Да, только под отладкой увидите, без использования дополнительных линий. Нужен только swdio и swclk.
@@NRelectronics а в релизной версии прошивки зависать не будет? И что нужно будет поменять в настройке релизной компиляции дабы не выводилась отладка?
по хорошему вернуть все настройки обратно.